【51CTO.com快译】
毫无疑问,微服务是软件开发界的热门话题。每家组织都在试图分解其应用程序/产品,转变成微服务,以便它们可以以基于微服务的架构这一名义出售产品。然而,它们果真在构建真正的微服务吗?还是说它们对整个微服务架构缺乏了解,只是在构建可以称之为“迷你服务”的另一组服务以满足业务要求?
本文试图区分微服务、迷你服务和宏(整体式)服务。
微服务
只有在以下情况下,才可以将您的服务称为微服务:
图1. 微服务架构
因此,如果您的服务未遵循这些原则中的任何一项,它就不是微服务,您接触的可能是迷你服务,稍后会进行解释。如果服务满足以下条件,它们也不是微服务:
然而在开发过程中,不是所有的开发人员都了解发布-订阅模式或对功能缺乏了解,因此他们犯以下错误:
迷你服务
那么什么是迷你服务呢?它好比以一种模式聚起起来的一组微服务,旨在解决业务需求。它是单一的功能即服务。
在以下情况下,可以将您的服务称为迷你服务:
图2. 迷你服务的架构
现在,如果您服务域的所有服务共享一个数据库和应用程序服务器,并通过直接调用来调用每个服务,因为它们都部署在同一个JVM中,那么您的应用程序就是整体式(宏服务)。
宏服务(整体式)
它只是个整体式程序,其中所有业务服务都作为单个程序包部署在应用程序服务器中,并共享同一个数据库(物理上和逻辑上)。它不太复杂,服务之间奉行紧密耦合。
图3. 整体式架构
何时使用什么哪种服务?
这完全取决于您的业务要求或项目需求。您在多个代码存储库中拥有功能时,创建微服务很有意义。另一方面,如果您在单个代码存储库中有多种功能,或者一个服务有多种功能,那么迷你服务是解决方案。
复杂性增加时,您又不需要与其他服务进行联系,那么可以考虑编写迷你服务。如果您在项目中有独立的功能,它们之间需要异步通信,那么请编写微服务。
迷你服务具有成本效益,而微服务的成本效益较低,因为我们必须实时部署多种功能才能实现业务目标。
结束语
团队和开发人员正在尽其所能地分散应用程序,但编写的微服务可能不如您想象的那么多。许多人仍在编写微服务和迷你服务的组合版。
原文标题:Microservice, Miniservice, and Macroservice,作者:Nitesh Gupta
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
在VMworld 2020,VMware宣布与NVIDIA进行全面合作,共同推出新一代的混合云架构...
2020年以来,由疫情停工减产所导致的缺芯困局影响着全球汽车发展,而本以为2021...
时间真快呀!转眼又至周一。让我们卯足干劲继续前行,先来看看上周有哪些不容错...
人头马君度(Rmy Cointreau)的历史非常重要,这家酒业公司以将最好的酒陈化100年...
根据调查,随着用户对计算能力、存储和网络容量的需求增长,服务器需求比经济不...
【51CTO.com快译】数字化转型使应用程序领导人必须找到有效的方法来更新改造遗留...
本文中的五个步骤有助于您掌握转型的总体需求,并有助于您处理一些真正重要的事...
在疫情的影响下,人们的工作和生活方式在过去的一年发生了前所未有的变化。为了...
2020年11月26日深圳潮数科技于石家庄成功召开数据安全 新时代新基建信息应用之基...
根据TrendForce的最新调查,自2020年初以来,COVID-19流感大流行加速了世界各地...