微服务演进

Posted fubinhnust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务演进相关的知识,希望对你有一定的参考价值。

抽象图

技术图片

 

 

 技术图片

 

 

 

从单体到微服务,这些年架构的演变

单体架构存在的缺点

技术图片

 

企业服务总线ESB

 

 技术图片

 

 

 微服务架构图示

技术图片

 

 

 

SOA和微服务的对比

  • SOA主要针对企业级,采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输
  • 微服务架构主要用于互联网公司,轻量级,小巧,独立运行,基于HTTP+REST+JSON格式传输
  • ESB也可以说是传统中间件技术与XML,Web服务等技术相互结合的产物

你必须了解微服务架构的10个要点

微服务的八大特征

技术图片

 

 

 

技术图片

 

 

 

微服务具备的特性

  • 每个微服务可独立运行在自己的进程里
  • 一系列独立运行的微服务共同构建起了整个系统
  • 每个服务为独立的业务开发,一个微服务一般完成某个特定功能,比如订单管理,用户管理等
  • 微服务之间通过一些轻量级的通信机制进行通信,例如通过REST API或者RPC的方式进行调用

微服务拆分示例

技术图片

 

 

服务拆分与架构演进

微服务设计原则

  • 单一职责原则
  • 服务自治原则
  • 轻量级通信原则
  • 接口明确原则

微服务的4个设计原则和19个解决方案

微服务和SOA

微服务概念的提出

微服务概念的定义

原文:

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

翻译 :
简而言之,微服务架构风格[1]这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。

微服务的九大特征

  • 特性一:“组件化”与“多服务”
  • 特性二:围绕“业务功能”组织团队
  • 特性三:“做产品”而不是“做项目”
  • 特性四:“智能端点”与“傻瓜管道”
  • 特性五:“去中心化”地治理技术
  • 特性六:“去中心化”地管理数据
  • 特性七:“基础设施”自动化
  • 特性八:“容错”设计
  • 特性九:“演进式”设计

微服务的优劣

好处

  • 强模块边界:微服务增强了模块化结构,这对大型团队尤为重要。
  • 独立部署:简单的服务更易于部署,并且由于它们是自治的,因此在出错时不太可能导致系统故障。
  • 技术多样性:通过微服务,您可以混合使用多种语言,开发框架和数据存储技术。

开销

  • 分布:分布式系统更难编程,因为远程调用很慢并且始终存在故障风险。
  • 最终一致性:对于分布式系统来说,保持强一致性是非常困难的,这意味着每个人都必须管理最终的一致性。
  • 运营复杂性:您需要一个成熟的运营团队来管理定期重新部署的大量服务。

SOA

微服务和SOA比较

 

 

 

 

 

 

以上是关于微服务演进的主要内容,如果未能解决你的问题,请参考以下文章

单体-微服务-Istio,不断演进的架构史(架构篇)

从单体架构到微服务的服务化演进之路

华为架构师8年经验谈:从单体架构到微服务的服务化演进之路

大白话聊聊微服务——人人都能看懂的演进过程

微服务浅述---架构演进

19.《持续演进的Cloud Native 云原生架构下微服务最佳实践》读书笔记-第九章 研发流程