我们希望最多一次实现消息传递,同时还要重试尽可能多的失败案例。重试失败的写入是否最多与一次传送一致?
为此,我们将operationComplete
侦听器添加到write
的通道诺言中,并在诺言为isSuccess
返回false时重试该操作。在这种情况下,是否保证在承诺返回以isSuccess
为假的情况下完成消息的传递?
我们正在使用TCP。
所有这些都取决于transport
(例如TCP / UDP等),但总的来说是。如果ChannelFuture
失败,则表示操作不成功,因此您可以重试。是否可以重试,再次取决于协议的语义。