1

我有一个小项目,其中来自 twitter 的推文被应用程序使用,放入 ActiveMQ 上的 JMS 队列,从另一个应用程序读取以丰富每条推文,然后返回到 ActiveMQ 服务器上的另一个 JMS 队列。目前,所有路由都是在每个应用程序本身内定义的。因此,从 twitter 到 JMS 队列的路由在应用程序 A 中定义,从一个 JMS 队列到另一个 JMS 队列的路由在应用程序 B 中定义。

在我看来,这种架构似乎是错误的,因为现在我无法在不重新部署其中一个应用程序的情况下更改任何路线。

我想要的是一个解决方案,其中我有一些(微)服务,如 twitter 适配器和丰富器,它们彼此独立。但是我在哪里放置路由信息呢?不知何故进入 ActiveMQ?有没有办法轻松配置路由?不知何故,这听起来像是一个 ESB,不是吗?

4

1 回答 1

1

我认为您可以使用托管 Camel + Embedded ActiveMQ 服务器的中央 java 组件来集成各种应用程序。这个中心组件可以让您的微服务/丰富器以及在应用程序之间传输数据的所有路由。

Camel 提供了许多组件(VM、文件、JMS、RMI、Web 服务等),您可以将它们用作连接到应用程序 A/B 的端点。关于 Twitter 提要,您可以将 twitter 适配器/侦听器放入这个中心组件,以便它可以通过直接 VM 端点与 Camel 路由通信。

这使集成更容易。所有路由都维护在中心位置,它将 MQ 服务器、微服务和应用程序解耦。

在此处输入图像描述

于 2015-04-15T17:51:49.407 回答