基于微服务或单片机

jul*_*ien 3 cordova spring-boot microservices

我读了很多关于微服务及其结构的内容,看来,在可维护性方面有很多优点.

我想用Spring Boot和Phonegap构建一个移动应用程序,它从RESTful Web Services中获取新闻.

所以我认为将它构建为微服务,这样我就可以在不重建整个应用程序的情况下添加其他服务.因为将来我可能想要添加其他服务.

但是,为这么小的移动应用程序构建基于微服务的应用程序真的值得吗?

tom*_*ern 5

Fowler写一篇很好的文章,他提出许多以微服务为基础的设计开始的项目很快就会遇到问题.相反,许多成功的基于微服务的应用程序是以整体生命开始的应用程序.

总结这个原则:

...你不应该开始一个带有微服务的新项目,即使你确定你的应用程序足够大以使它值得.

虽然福勒并未表达他对此的个人看法,但他确实推测了他称之为Monlith-First的好处.

...一个monolith-first策略,你应该在最初构建一个新的应用程序作为整体,即使你认为它可能会从稍后的微服务架构中受益......可能很难扩展设计不佳的但是成功的软件系统,但它仍然是一个比其反向更好的地方......你需要优先考虑速度......

因此,Monlith-First方法的好处在于您可以快速构建整体,因为通常需求是众所周知的并且相对较少.此外,您可以快速推向市场,然后了解您的应用程序及其在现实世界中的表现.

让我感到震惊的主要好处是,您将更清楚地了解您所支持的业务功能之间的界限自然落在您的应用程序中,而不是您曾尝试预先定义这些边界(必要且非常重要的设计步骤)基于微服务的设计).

他继续展示如何有效地规划Monolith-first设计,这主要涉及保持代码的美观和模块化,并着眼于未来模块的分解.

...仔细设计整体结构,注意软件中的模块化,包括API边界和数据存储方式.

根据我的经验,基于服务的方法可以很好地与业务领域专家花费大量的前期分析时间,以及一个熟悉基于soa和服务的成熟交付团队.