第一章,直面响应式微服务架构(3 / 4)

Mzlin蒙芷玲 蒙芷玲 3271 字 2023-06-03

代码腐化,如何处理团队协作问题以及如何应对系统伸缩性问题。针对以上集中式的单块系统所普遍存在的问题,基本的解决方案主要依赖于分配分布式系统的合理构建。分布系统。所谓分布式系统,就是硬件或者是软件组件分布在不同的网络计算机上,彼此通过一定的通信机制进行交互和协调系统。我们从这个定义中可以看出,分布式系统包含两个区别于单块系统的本质特征,一个是网络分布式系统,所有的组件都位于网络中,对于互联网应用而言则位于更为复杂的互联网环境中,另一个就是通信和协调。与单块系统不同,位于分布式系统的各个组件只有通过约定高效且可靠的通信机制进行相关。才成某项业务功能。这就是我们设计和实现分布式系统时首先需要考虑的两个方面。分布式相较于集中性的系统而言,具备了优势的同时,也存在一些我们不得不考虑的特性,包括但不限于网络传输的生态性、系统的异构性、数据的一致性、服务的可用性等。以上问题是分布式系统的基本特性,我们无法避免,只能够想办法进行利用和管理,这就给我们的设计和实现分布式系统提出了挑战。服务在本质上也是一种分布式系统,但在遵循通用分布特性的基础上,微服架构还表现出一定的特殊性。接下来我们将要围绕微服务架构的这些特性进行展开。微服务架构Martin floors指出,微服务架构具有以下特点,服务组件化组件coonent是一种可独立替换或升级的软件单元,在日常开发的过程中,我们可能会设计和使用很多组件。这些。能于系统内部,也可能存在于系统所运行的进程之外,而服务就是一种进程外的组件。服务之间利用诸如rpc rete procedure call远程过程调用的通信机制完成交互。服务组件化的主要目的就是服务可以独立部署。如果你的应用程序由一个运行在独立进程中的很多组件组成,那么对于任何一个组件的改变都会导致必须重新部署整个应用程序。但是,果你把应用程序拆分成很多服务,显然通常情况下你只需要重新部署那个改变的服务。在微服务架构中,每个服务运程的其独立的进程中,服务与服务之间采用了轻量级通信机制,互为沟通,按照业务能力的组织服务。当寻找一个把大的应用程序进行拆分的方法时候,研发过程通常都会围绕产品团队、UED团队、APP前端团队和服务端团队进行展开,这些团队也就是通常所说的职能团队function tea当使用这些标准对团队进行划分的时候,任何一个需求变更,无论大小都会导致跨团队协作,从而增加了沟通和协作成本。而微服务架构划分的方法有所不同,它倾向围绕业务功能的组织来分割服务,这些服务面向具体的业务结构,而不是面向某项技术能力。因此。cross functional的特征团队facial tea用业、项目管理和技术研发等开发过程中要求的所有技能,每个服务都围绕着业务进行构建,并且能够被独立部署到生产类和类生产的环境。这服务集中治理的一个好处就是在单一平台上进行标准化,但采用微服务的团队更喜欢不同的标准,而集中式的系统的组件拆分成不同的服务,我们在构建这些服务的时候就会有更多的选择。对具体的某一服务而言,应该根据业务上下文选择合适的语言和工具进行构建。另一微服务架构也崇尚于对数据进行分散管理。中使用使用单一逻辑数据库进行数据持久化时,通常选择在应用的范围内使用一个数据库。然而微服务让每个服务管理自己的数据库。无论相同数据库的不同实例还是不同数据库系统基础设施自动化。许多使用微服务架构产品或者系统的团队拥有丰富的持续集成conal interation和持续交付continuous delivery经验。团队使用微服务架构构建软件需要更广泛依赖基础设施自动化技术。在微服务中,同样需要考虑服务容错性、设计等分布式系统所需要考虑的问题。我们对以上特点进行总结和提炼,认为微服务具有业务独立、进程隔离、团队自主、技术无关、轻量级通信以及交付独立性等微特性。服务于机床。本节在微服务架构的基础概念的基础上,简要分析服务拆分的策略和手段,同时也给出对拆分之后的服务进行集成的各种实现方法和技术体系。服务称,在微服务架构中,我们认为服务是业务能力的代表,需要围绕业务进行组织。服务拆分的关键在于正确理解物业务,识别单个服务内部的业务领域及其边界,并按边界进行拆分。所以微服务的拆分的模式本质上是基于不同的业务进行拆分。业务体现在各个功能代码中,通过确定的业务边界,并使用礼遇与界限上下文、boundary contact和领域世界doin event等技术手段来实现拆分。数据对微服务架构而言,同样可以认为是一种依赖关系,因为任何的业务都需要使用这个数据容器作为持久化的机制或者是数据处理的媒介。这里的数据容器不仅是关系型数据库,还泛指包括消息队列、搜索引擎以及各种。QG类的数据媒介微服务的架构存在一种说法,即我们需要微服务用到的所有资源全部嵌入到该服务中,从而确保微服务的独立性。而数据的