什么是微服务:

微服务自2014年首次提出 , 业界并没有能达成共识的定义 , 但微服务有着非常多的标签和说明。如微服务规模比较小,支持技术异构性,自治且能独立部署 ,拥有轻量级通信等。
Martin Fowler和James Lewis并没有对微服务进行定义,而只是描述了微服务架构(Microservice Architectural Style)的一些设计模式、实现手段和管理方式。Sam Newman在其图书《微服务设计》中给微服务下了一个定义,即微服务就是一些协同工作的小而自治的服务。

微服务特点:

  1. 微服务架构是一种软件系统架构。微服务架构既不是一种具体的IT技术
  2. 微服务是整个微服务架构实现的核心。微服务架构的基本元素是微服务
  3. 实现微服务架构需要基础环境 ,微服务框架需要支持服务注册、服务发现、验证和授权、请求路由、以及服务监控等基础功能
  4. 运维设施自动化。微服务架构覆盖设计、开发、测试、部署、运行、监控和管理等阶段,需要实现敏捷开发和快速部署

微服务的分类:

根据承担的作用 ,可以将某个具体的微服务分成 业务类微服务 或者 技术类微服务 ;
技术微服务继续划分 , 又可以分为 特定微服务 (如认证微服务 或者 服务注册/发现微服务 等) 和 基础平台微服务(如 Service Mesh (istio) , Distributed Application Runtime (dapr) )

微服务拆分都方法论: 一是基于DDD拆分 , 除此之外还可以基于其他分类标准拆分 。如根据系统使用人员类型和功能 ,将之前的大系统拆分出客服系统和财务系统等 。我认为可以发挥奇思妙想,只要能合理的拆分或者分阶段拆分、逐步演化都是OK 的。

微服务架构和SOA架构的对比 (基于常规的认识上)


SOA服务的概念:

它是一个抽象物,可重用,无状态,其封装了高级业务内容,隐藏内部实现细节,只提供实现的功能说明。SOA服务不依赖特定的技术或框架,只受制于一定的约束条件及服务规约,具有中立性,其本质是屏蔽应用间复杂的业务或技术逻辑。
SOA架构是一种软件系统架构 ,SOA架构的基本元素是服务

SOA服务的特征SOA服务具有以下5个特征:

■ 可重用——一个服务可以被多个应用和业务流程调用。
■ 松耦合——服务请求者到服务提供者的绑定与服务之间应该是松耦合的。
■ 明确定义的接口——服务交互必须是明确定义的。一些服务描述语言主要用于描述服务请求者所要求的绑定到服务提供者的细节。
■无状态的服务设计——服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和数据模型。
■ 基于开放标准——当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准,采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。

参考 :
《微服务设计:企业架构转型之道》
https://www.cnblogs.com/skevin/category/2104292.html