可以激励程序员在分布式
Java应用程序中使用
Java JMS(Java Message Service)API代替java.net包的UDP套接字API,还是使用UDP套接字API而不是JMS API?如有可能,请提供示例应用程序.
解决方法
UDP和
JMS在许多方面是不同的,从根本上说,因为JMS通常依赖于
TCP固有的功能(参见这个
comparison of UDP and TCP来了解两个底层协议的区别).
基本上,UDP适用于不需要任何可靠性,排序,拥塞控制或网络间路由的应用(因为许多消费者和商业级路由器不转发UDP数据包). JMS提供了从UDP和更多缺少的所有这些功能(如事务,pub / sub和排队,持久订阅等).
UDP可能适用于在不需要绝对质量的局域网内流式传输大量数据; JMS对于需要广域网主机之间可靠消息传送的应用来说会更好.此外,JMS还掩盖了套接字,服务器,绑定等的细节,并提供了更适合企业集成的高级API.