2016-02-16 120 views
1

我是Jboss的新手,想知道微服务架构是否是JBOSS的正确选择。我无法更改应用程序服务器,因为它是由客户端架构师决定的,我别无选择。 想知道我们是否可以开发底层JBOSS应用服务器的微服务。JBOSS的微服务

我明白春天开机自带嵌入式Tomcat容器,这使得它的灵活性,以停止和启动,在不影响其他服务部署个性化的服务。但是,这种架构是否也适用于JBoss。

请建议。

感谢,

回答

0

通过定义微服务是什么,然后在概念上是的。微服务是一个独立单元的服务,可以独立部署,更新和取消部署,而不影响应用程序的任何不相关部分。因此,这意味着有多个JBoss MS实例和应用程序通过某种网关或任何其他机制调用它们,具体取决于您的用例。如果您打算将所有MS部署在同一个JBoss实例中,那么它就会打败MS的目的。鉴于此,JBoss不会成为MS部署的正确选择,因为它只会让您的MS部署基础架构变得非常沉重。

根据客户的需求是什么,你可能可能让你的web应用程序在JBoss和单独部署MS容器。

+0

感谢您的一个很好的解释。你的意思是“你可以将你的webapp保存在JBoss中,并单独部署你的MS容器。” – user2585494

+0

事实上,你正在考虑MS,我相信你已经确定了他们提供的功能范围。所以我的意思是说,这些单独的服务可以像Spring库或Dropwizard一样使用像库一样的自包含MS,而您的前端服务器仍然保留JBoss。您还应该首先评估MS是否真的适合您。 – User2709

+0

谢谢。今天我做了一些关于使用弹簧引导的微服务的研究。然而,我无法在任何地方将弹簧引导应用程序部署到jboss中。你能指导我任何有用的链接/参考请。 – user2585494

0

这取决于你想从微服务中获得什么。

我公司的一些开发人员在Spring Boot中看过,但得出结论,最好是作为一个独立的容器而不是JBoss运行,否则你实际上有两个容器框架竞争(SB和JBoss)和范围的相关问题。

在JBoss中部署微服务不会给你同样的灵活性,作为一个真正的容器系统,如码头工人。使用Docker,您可以为包含所有代码,系统工具,运行时环境等的微服务创建独立包。它可以像需要的那样小或大。另一方面,JBoss是一个运行单个JVM的大容器,可容纳多个应用程序。隔离级别并不相同,将JBoss作为单个微服务的容器效率不高,因此您必须适当调整大小,然后部署到实例以利用其可用资源。

如果您正在寻找微服务来获得对服务生命周期管理(部署,版本控制,废弃等)的更好控制,而不是像Netflix或LinkedIn这样的自动化Web规模组件部署模型,你可以用JBoss做到这一点。

我实际上正在寻找这方面的工作。它不是真正的微服务,而是通过打包和部署单独的,适当版本化的API而不是单一的应用程序,并遵循大多数微服务开发的其他原则(组件化,业务功能焦点,无状态等),我们希望能够更好地管理并受益于我们的API。

我们的API都将是后面的API网关和负载平衡器,所以我们可以选择如何分配在整个JBoss的实例和平衡资源使用分配的microserves的要求。请注意,我们的组织相对较小,流量相对较低且可预测,因此此方法应该可以正常工作。但您的需求可能会有所不同。

0

我实际上开发了一个可行性研究来调查你提到的解决方案。我的结论是,在JBoss平台中使用微服务原则是完全可行的。

我使用JBoss的\春季启动\ Netflix公司的结合,创造出成功的科技服务栈,我个人不认为找到了解决交易问题(多科技服务合作),将风扇出的问题,其造成的,因为过多的网络通信和串行化成本。

我也写了一篇关于这个主题的博客,如果你愿意,你可以在这里找到更多的细节,这里是链接。

Micro Services – Fan Out, Transaction Problems and Solutions with Spring Boot/JBoss and Netflix Eureka