java – 如何打包/部署ESB?

前端之家收集整理的这篇文章主要介绍了java – 如何打包/部署ESB?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将我的头围绕在似乎是轻量级ESB的Apache Camel上.如果我正确地了解骆驼/ ESBs,那么您可以将骆驼路线视为节点和边缘的图形.每个节点是路由上的端点(可以消耗/产生消息).每个边缘是两个不同端点(1个生产者和1个消费者)之间的路由.

假设这是正确的,我有一个实际的问题:最佳实践决定部署您的应用程序的ESB /骆驼路由?我应该将其打包成自己的JAR,还是值得成为自己的EAR充满EJB,Web服务和其他JAR?

我想我在问骆驼路线或ESB应该如何部署/架构,如:

my-esb.ear/
    ejb1.jar/
        MyEJB_1.class
    ejb2.jar/
        MyEJB_2.class
    webservice.war/
        MyWebService.class

要么…

my-esb.jar/
    MyEJB_1.class
    MyEJB_2.class
    MyWebService.class

解决方法

从我的理解,有几种方式可以运行骆驼.

嵌入到Java应用程序中:您可以将Camel嵌入到独立的Java应用程序中.在这种情况下,您将在您的应用程序中启动一个骆驼上下文,这将启动路由等.当您的应用程序需要与服务等进行通信时,这是非常好的.为此,您需要部署骆驼和组件的第三方jar类路径.
嵌入在Web应用程序中:正如人们已经指出的那样,这似乎是一个受欢迎的选择.骆驼罐和第三方罐被包装在WAR文件中,并基本上部署到诸如Tomcat之类的网络容器以托管骆驼服务.
>嵌入在应用服务器中:我已经阅读了一些关于如何将Camel部署到诸如JBoss之类的应用服务器的文章,甚至还读到了部署到Glassfish的人.这似乎非常类似于您如何部署到Tomcat. JBoss有一些类加载问题,你需要解决,这使得它很棘手.所以是的,您可以通过走WAR路由部署到应用程序服务器.
>部署到OSGi:您可以相对较快地使您的Camel jar成为OSGi包,并部署到OSGi框架(如Apache Felix).将jar转换为适当的OSGi包然后部署是相对简单的.这里的一个大问题是某些第三方可能没有OSGi兼容的捆绑包供您部署.

我个人喜好是OSGi路线.它是轻松轻松的,并允许我托管我的骆驼路线作为持久服务(即Window服务,Unix Deamon)与非常小的脚印.

您现在应该意识到的是,Apache骆驼可以通过多种方式进行部署,由您自己决定如何做.花了我一段时间来了解如何部署骆驼,因为我不得不使用不同的部署模式来获得良好的感觉.我没有碰到的唯一一个是部署到应用服务器,因为我觉得这些服务器大部分都足够重.

就建筑而言,我喜欢将不同的路线/应用程序保存在不同的罐子中.由于我使用OSGi,我喜欢能够更新一个特定的路由并部署它,而无需重新部署所有的东西.如果您将所有内容部署在一个jar中,那么您需要重新整理并重新部署该jar.然而,这是个人喜好,你的里程可能会有所不同

希望这有帮助.

猜你在找的Java相关文章