1.认识微服务
1.1 单体架构
将业务所有功能集中在一个项目中开发,打成一个包部署
优点:
- 架构简单
- 部署成本低
缺点:
- 耦合度高(维护困难、升级困难)
1.2 分布式架构
分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
优点:
- 降低服务耦合
- 有利于服务升级和拓展
缺点:
- 服务调用关系错综复杂
1.3 微服务
1.3.1微服务的架构特征:
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
- 自治:团队独立、技术独立、数据独立,独立部署和交付
- 面向服务:服务提供统一标准的接口,与语言和技术无关
- 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
可以认为微服务是一种经过良好架构设计的分布式架构方案 。
1.3.2微服务架构的构成元素:
- 服务集群将一个服务拆分成不同的模块组件,而每个拆分的模块组件都要遵循单一职责的原则以及面向服务,对外暴露接口。
- 注册中心记录微服务集群中每一个服务的ip、端口、以及功能等。负责拉取或注册服务信息。
- 配置中心可以统一的管理整个服务群里的配置,可以实现配置的热更新。
- 服务网关对访问发起者的身份的校验,并且把用户的请求路由(负载均衡)到具体的服务上。
- 分布式缓存为了应付高并发的数据访问,将用户需求首先放置于分布式缓存中,未命中之后再去数据库中查询。
- 分布式搜索是将数据分散存储在多台独立的设备上。利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息。
- 消息队列是一种先进先出的队列型数据结构,实际上是系统内核中的一个内部链表。通过消息队列实现事件总线,基于事件和状态构建微服务和工作队列的调度与执行机制。
- 分布式日志服务统计整个集群中所有服务的运行日志,统一的进行存储和分析等。
- 系统监控链路追踪实时监控和追踪每个服务节点的运行状态、CPU的负载、内存的占用等。

1.4 SpringCloud
SpringCloud是目前国内使用最广泛的微服务架构。SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
