目标:了解SOA与微服务架构的区别以及说出微服务架构的特点
微服务架构:是一套使用小服务或者单一业务来开发单个应用的方式或途径。
与使用ESB的SOA架构的区别:微服务架构没有使用ESB,有服务治理注册中心;业务粒度小。
微服务架构
是使用
一套小服务来开发单个应用的方式或途径
,每个服务基于单一业务能力构建,运行在自己的进程
中,并使用轻量级机制通信,通常是
HTTP API
,并能够通过自动化部署机制来独立部署。这些服务可以使用不同的
编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。
微服务结构图:
API Gateway
网关是一个服务器,是系统的唯一入口。为每个客户端提供一个定制的
API
。
API
网关核心是,所
有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。如它还可以具有其它职
责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。通常,网关提供
RESTful/HTTP
的
方式访问服务。而服务端通过服务注册中心进行服务注册和管理。
微服务的特点
:
单一职责:微服务中每一个服务都对应唯一的业务能力,做到
单一职责
微:微服务的服务拆分
粒度很小
,例如一个用户管理就可以作为一个服务。每个服务虽小,但
“
五脏俱全
”
。
面向服务:
面向服务
是说每个服务都要对外暴露
Rest
风格服务接口
API
。并不关心服务的技术实现,做到与平台
和语言无关,也不限定用什么技术实现,只要提供
Rest
的接口即可。
自治:自治是说
服务间互相独立
,互不干扰
团队独立:每个服务都是一个独立的开发团队,人数不能过多。
技术独立:因为是面向服务,提供
Rest
接口,使用什么技术没有别人干涉
前后端分离:采用前后端分离开发,提供统一
Rest
接口,后端不用再为
PC
、移动端开发不同接口
数据库分离:每个服务都使用自己的数据源
部署独立:服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服
务都是独立的组件,可复用,可替换,降低耦合,易维护