过去十年甚至更长时间,我研究并使用了IBM的MQSeries和Websphere MQ软件。对于在不同位置连接不同公司的两个应用程序似乎是一个很好的解决方案:每个公司的应用程序可以在本地计算机上使用MQSeries发送消息,MQSeries将其传输到另一个公司的计算机和应用程序那边会在本地接收消息。
快进到今天:我不再为IBM工作,但我正试图解决类似的问题。我的应用程序需要每天向远程公司的应用程序发送一些消息,每个消息几MB或更少,并收到类似数量的小答复。
消息队列中间件仍然是解决这种架构需求的好方法吗?我一直在尝试使用RabbitMQ进行原型设计,但上面的内容似乎与RabbitMQ有关。我在错误的兔子洞里吠叫吗?
答案 0 :(得分:1)
或许WMQ低延迟是您所需要的,因为不需要服务器 - WebSphere MQ低延迟消息传递与传统的WebSphere产品(如WebSphere MQ,WebSphere Message Broker和WebSphere Application Server)不同,因为没有安装和配置的产品基础结构,例如队列管理器,消息代理或应用程序服务器。因此,没有特定的产品组件需要监控,测量和管理。
http://www-03.ibm.com/software/products/en/wmq-llm http://pic.dhe.ibm.com/infocenter/wllm/v2r5/index.jsp?topic=%2Fcom.ibm.wllm.doc%2Fintroductiontowebspheremqlowlatencymessaging.html
当然,简单的RESTful Web界面可能能够提供相同的功能。
我不建议编写TCP套接字应用程序 - 为什么所有那些中等重量提升的时候有那么多产品可以为你做重量和中量提升?你只想进行轻量级提升 - 发送请求,得到响应 - 6 2甚至,过度和结束。
您需要绘制需求列表: - 可靠性 - 如果请求或响应丢失,它有多重要? - 可恢复性 - 如果应用程序崩溃,可以恢复并重新发送正在进行的消息吗? - 往返时间 - 延迟的一方 - 1:1服务?多到一个?
我希望这会有所帮助。 戴夫
答案 1 :(得分:0)
WebSphere MQ仍然可以解决您的问题...我认为该场景是与请求 - 响应场景的点对点通信。你可以使用一些像JMS这样的新东西,它可以很好地与你的应用程序集成。
但是如果你非常确定它只有2个应用程序可以相互通信并且没有出现网络问题,那么你可以进行简单的套接字通信。
解决问题的另一种方法是在两个应用程序之间共享一个公共数据库。