我是Jboss的新手,想知道微服务架构是否是JBOSS的正确选择。我不能更改应用服务器,因为它是由客户端架构师决定的,我别无选择。想知道我们是否可以使用底层的JBOSS应用服务器来开发微服务。
我知道Spring boot带有嵌入式tomcat容器,这使得它可以灵活地停止和启动,部署单独的服务,而不会影响其他服务。然而,该架构是否也适用于JBoss。
请提个建议。
谢谢,
发布于 2016-02-17 14:53:16
根据微服务的定义,那么在概念上是肯定的。微服务是一个独立的服务单元,它可以独立地部署、更新和取消部署,而不会影响应用程序的任何不相关部分。因此,这意味着有多个MS的JBoss实例,您的应用程序通过某种网关或任何其他机制调用它们,这取决于您的用例。如果您计划在同一个JBoss实例中部署所有MS,那么它就违背了MS的目的。鉴于此,JBoss不是MS部署的正确选择,因为它只会使您的MS部署基础架构变得相当繁重。
根据客户的需求,您可以将webapp保留在JBoss中,并单独部署MS容器。
发布于 2016-05-25 08:29:48
这取决于您希望从微服务中获得什么。
我所在组织的一些开发人员查看了Spring Boot,但得出的结论是,最好将其作为独立的容器运行,而不是在JBoss中运行,否则您实际上会有两个容器框架竞争(SB和JBoss)以及一系列相关的问题。
在JBoss中部署微服务不会给你带来像Docker这样的真正容器系统那样的灵活性。使用Docker,您可以为您的微服务创建独立的包,其中包含所有代码、系统工具、运行时环境等。包的大小可以根据需要而定。另一方面,JBoss是一个运行单个JVM的大型容器,旨在容纳多个应用程序。隔离级别不同,将JBoss作为单个微服务的容器效率不高,因此您必须适当调整大小,然后部署到实例以利用其可用的资源。
如果您将微服务视为对服务生命周期管理(部署、版本控制、弃用等)进行更好控制的一种方式,与Netflix或LinkedIn那样的自动化、web规模的组件部署模型不同,您可以使用JBoss充分做到这一点。
实际上,我希望沿着这些思路做一些事情。它不会是真正的微服务,而是通过打包和部署单独的、适当版本的API,而不是单一的应用程序,并遵循微服务开发的大多数其他原则(组件化、业务功能焦点、无状态等)。我们希望能够更好地管理我们的API并从中受益。
我们的应用程序接口都在应用程序接口网关和负载均衡器后面,因此我们可以选择如何在JBoss实例上分布微服务,并根据需要平衡资源使用。请注意,我们的组织相对较小,具有相对较低和可预测的流量,因此这种方法应该可以很好地工作。然而,您的需求可能有所不同。
发布于 2017-05-30 23:34:17
实际上,我开发了一个可行性研究来调查您提到的解决方案。我的结论是,在JBoss平台中使用微服务原则是完全可行的。
我使用JBoss \ Spring Boot \ Netflix的组合创建了成功的微服务堆栈,我个人这样做是为了找到一个解决事务问题(多个微服务协作)和由于过高的网络通信和序列化成本而导致的扇出问题的解决方案。
我还写了一个关于这个主题的博客,如果你愿意,你可以在那里找到更多细节,这是链接。
https://stackoverflow.com/questions/35441660
复制相似问题