我有一个小项目,来自twitter的推文被应用程序使用,放入ActiveMQ上的JMS队列,从另一个应用程序读取以丰富每个推文,然后返回到ActiveMQ服务器上的另一个JMS队列。 目前,所有路由都在每个应用程序本身内定义。因此,从应用程序A中定义了从twitter到JMS队列的路由,并且在应用程序B中定义了从一个JMS队列到另一个JMS队列的路由。
在我看来,这种架构似乎是错误的,因为现在我无法在不重新部署其中一个应用程序的情况下改变任何路由。
我想要的是一个解决方案,我有一些(微)服务,如Twitter适配器和增强器,它们彼此独立。但是,我在哪里放置路由信息呢?不知何故进入ActiveMQ?有没有办法轻松配置路由?不知怎的,这听起来像ESB,不是吗?
答案 0 :(得分:1)
我认为您可以使用托管Camel + Embedded ActiveMQ服务器的中央Java组件来集成各种应用程序。这个核心组件可以包含您的微服务/丰富程序以及在应用程序之间传输数据的所有路径。
Camel提供了许多组件(VM,文件,JMS,RMI,Web服务等),您可以将它们用作连接到应用程序A / B的端点。关于Twitter feed您可以将twitter适配器/侦听器放入此中央组件,以便它可以通过直接VM端点与Camel路由通信。
这使集成更容易。所有路由都保存在中心位置,它将MQ服务器,微服务和应用程序分离。