我正在研究一种使用SOA风格实现的实时应用程序(通过一些消息传递协议读取松散耦合的组件–JMS,MQ或HTTP). 设计此系统的架构师选择使用JMS连接组件.该系统是实时的,因此如果一个组件发
设计此系统的架构师选择使用JMS连接组件.该系统是实时的,因此如果一个组件发生故障(事务将只是超时),则不需要排队消息.此外,不需要保证传送或回滚.
在这种情况下,使用JMS比HTTP Web服务(速度,资源足迹等)有什么好处?
我正在考虑的一件事是,因为JMS方法要求我们设置线程池大小(监听JMS主题/队列的组件数),HTTP服务不是更合适,因为这个额外的配置不是需要(为每个HTTP请求创建一个新线程,使应用程序可扩展到“无限”数量的请求,直到服务器耗尽资源).
我错过了什么吗?
我完全不同意S.Lott提出的观点,但是有关HTTP Web服务的几点要考虑:>您的客户只需要知道如何通过HTTP进行通信 – 这种协议很好地支持了几种形式的现代语言. JMS虽然很受欢迎,但它比HTTP更专业,因此限制了互连系统可以使用的语言.目前您的系统可能不是问题,但是您是否需要在以后插入其他可能难以支持JMS连接的系统?
> WSDL和SOAP之类的标准,你可以为你的服务提供很好的支持,并且有许多工具可以生成代码,从WSDL文件中为你实现管道的两端(客户端和服务器),减少你需要做的开发量.这些标准还使得定义和发布您将在系统之间传递的数据的规范变得相对简单,您可能必须使用JMS等排队技术手动完成这些操作.
>在缺点方面,正如S.Lott所指出的,JMS为您提供了使用(无状态)HTTP协议丢弃的功能:保证排序&可靠性;监测;可扩展性;你确定你不需要这些,并且不需要这些吗?
很棒的问题,顺便说一句.