使用套接字在两个服务器之间发送数据是一个好主意,还是应该使用MQ之类的东西来移动数据.
我的问题:如果我只需要/确保交付数据,那么套接字是否可靠?
还有其他解决方案吗?
谢谢.
套接字是用于执行网络通信的应用程序级API.套接字的可靠性取决于您在创建套接字时选择的网络协议.如果选择TCP/IP,您将获得"可靠"传输......达到限制.如果选择UDP/IP,您将获得"不可靠"的传输.
如其他答案所述,TCP可确保您不会丢失或损坏数据:
如果有足够长的网络中断,或者发送方或接收方死机,TCP/IP连接将中断,除非您采取措施重新启动连接,否则将丢失数据.
如果存在网络级数据损坏,则校验和不会检测到它的可能性很小.
对于比TCP/IP提供的更高级别的可靠性保证,您需要在应用程序的基于Socket的网络层的顶部实现更灵敏的校验和和保证的交付机制.或者使用消息排队产品,为您做好工作.
因此,您的问题的答案取决于您使用套接字的方式,以及系统所需的可靠性级别.