有哪些原因可以促使程序员在分布式 Java 应用程序中使用 Java JMS(Java 消息服务)API 而不是 java.net 包的 UDP 套接字 API,或者使用 UDP 套接字 API 而不是 JMS API?如果可能,请给出应用示例。
UDP http://en.wikipedia.org/wiki/User_Datagram_Protocol and JMS http://en.wikipedia.org/wiki/Java_Message_Service在很多方面都有所不同,从根本上讲,因为 JMS 通常依赖于 JMS 固有的功能TCP http://en.wikipedia.org/wiki/Transmission_Control_Protocol(看这个UDP和TCP的比较 http://en.wikipedia.org/wiki/User_Datagram_Protocol#Comparison_of_UDP_and_TCP了解两个底层协议的差异)。
基本上,UDP 适用于不需要任何可靠性、排序、拥塞控制或网络间路由的应用程序(因为许多消费级和商业级路由器不转发 UDP 数据包)。 JMS 提供了 UDP 所缺少的所有这些功能以及更多功能(例如事务、发布/订阅和队列、持久订阅等)。
UDP 可能适用于在局域网内传输大量数据,其中对绝对质量没有要求; JMS 更适合需要在广域网主机之间进行可靠消息传递的应用程序。此外,JMS 模糊了套接字、服务器、绑定等细节,并提供了更适合企业集成的高级 API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)