比如发送某个消息,调write接口只能确定消息写到缓冲区。Tcp底层会重发这个消息到收到应答。在应用层怎么获取到某个消息发送失败/成功了信息?是否需要应用层在加应答机制。
比如发送某个消息,调write接口只能确定消息写到缓冲区。Tcp底层会重发这个消息到收到应答。在应用层怎么获取到某个消息发送失败/成功了信息?是否需要应用层在加应答机制。
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答846 阅读
1 回答922 阅读
1 回答957 阅读
1 回答723 阅读
1 回答823 阅读
看业务上的需要.
一条消息如果要确保被接收或者处理,是需要应用层应答机制的.
比如说有中间件,你发出的消息被中间件接收了,tcp层发送成功,
但是中间件给后端时失败,那么这条消息是需要重传,tcp层是无法感知的,
所以需要应用层来处理.
幂等消息,对端需要确保对应的业务逻辑不会二次处理.
比如加钱消息,需要固定唯一流水号来确保这笔钱已经加上,不会重复加.
时序消息,对端需要确保消息的连续,重传中间丢失的消息.
比如发生A->B->C的顺序操作,中间层有BUG导致ABC三条消息都回了确认,只有AC到达了最终端,那么最终端需要能检测出消息的连续性并要发送端重传B消息.