我们正在为我的客户设计微服务的初始阶段,他们的标准整体应用程序位于他们自己的数据中心的4台JBOSS服务器上。微服务架构是否仅针对基于云的部署?我可以在内部生产准备好tomcat / JBOSS上部署微服务吗?这是一个不错的选择吗?
答案 0 :(得分:3)
当然可以。 微服务架构是一个具有许多小型交互组件的概念,其中每个组件都执行明确定义的工作部分,但很好。
它扩展了Linux方式和解耦组件的概念。
在您的情况下,您可以将服务拆分为多个较小的服务。每个都有自己的开发和部署周期,每个周期都有明确定义的API。
答案 1 :(得分:2)
微服务架构仅针对基于云的部署吗?
不,这是用于应用程序开发的体系结构。微服务的基本思想是将复杂的应用程序功能与小功能分开,以降低复杂度并获得高性能。 移动微服务之前,您无需考虑几个原因。
如果您的应用程序包含大量复杂功能,则微服务更好。并将它们分开并分开部署,然后轻松进行更改和维护。
如果某些应用程序功能需要较高的计算能力。您可以分配单独的硬件资源。如果您将其实现为微服务。
3。部署和维护
如果您使用微服务,则可以单独部署和维护服务,而不会影响其他服务。
4。数据迁移
如果您的数据库包含较高的数据表关系,那么对于功能数据库(每个微服务都需要每个DB)进行删除将有点困难,因此第一步是将DB保持为与服务无关的整体功能。然后开始反应堆数据库
5。调用每个服务
前端应用程序保持整洁且无逻辑。并使用API Gate方式包装您的微服务,并将所有服务发布为一项服务。
6。应用程序安全性
运行在每个服务中的每个服务都无需使用JWT(oAuth2)API安全性进行会话跟踪。
如果您需要处理一个业务功能但有多个服务,则需要检查每个服务功能是否正常**(例如db操作,回滚)**,因此需要开发跨国处理程序
没有特定的技术堆栈,但是有更多可用的免费技术 例如:
oAuth 2和JWT的安全性
没有微服务实现的固定方法,使用正确的技术堆栈来获得性能并实现小型业务功能。与托管在云或本地服务器中无关紧要。 strong文字
答案 2 :(得分:0)
无论是在本地,物理服务器还是在云中部署微服务,都没有任何限制。这两种方法都是有效的,但它们有不同的优点和缺点。
使用本地/物理服务器,您将拥有:
借助云基础架构,您可以获得以下一些优势(与上述缺点相反):
我没有提到给定方法的所有优点和缺点,因为它也取决于项目(它会在一天中的不同时间接收不同的流量,是否需要在本地保存数据或者是否可以在国外在云中,......)。