我们为公司应用程序定义了一个架构,因此该架构必须负责与其他应用程序/系统的集成。我们首先想到的是将所有集成集中在一个 ESB (Mule) 中,它将以独立模式运行。然而出现了新的需求,问题是每个应用程序都必须管理自己的集成(尚未定义,但它们不应该很复杂)。
现在我们正在评估使用 Apache Camel 或 Mule,但在嵌入式场景中。与一些伙伴讨论它,我们不太清楚哪种方法是建立这个架构的最佳(或更合适)的方式。在我看来,作为每个应用程序的责任,我会将 Camel 直接集成到我的应用程序中(作为库);但他们说在单独的项目中部署 Camel 是更好的选择。
这些是我所看到的场景:
我嵌入了 Camel 的应用程序。例如,如果我的应用程序必须调用 Web 服务,我只需对其进行编码并发送它(From(...).to(...) 等)
我的应用程序和另一个嵌入了 Camel 的应用程序。如果我的应用程序必须调用 Web 服务,并且我想通过 Camel 管理所有集成,我想我必须调用 camel 项目(通过 JMS,或调用它公开的接口),在该项目中定义一个路由,其中显示:当我从 X(即时调用的接口)读取时,调用此 WS。我的意思是,当我认为不需要它时,它会增加更多的复杂性。
可能我误解了骆驼的真正工作原理,所以我很高兴听到我错了什么;)