前言
微服务一直很火,2016年,2021年,两个年份都出了微服务相关的题目。
但是历年真题经常连续2年出同样的题目。所以虽然去年出了,但是今年还是要备考该题目的。
微服务的特点(version A)
真题详解中的介绍:
-
通过服务实现组件化。单个功能相对实现简单,能够聚焦一个指定的业务功能或业务需求。
-
功能明确,易于理解。微服务能够被一个开发人员理解、修改和维护,这个小团队能够关注自己的工作成果,并降低沟通成本。
-
围绕业务功能构件开发团队。采用微服务的架构,可以围绕业务功能构件开发团队,这样更符合企业的分工与组织结构,便于管理。
*支持多种开发语言和多种平台。不同的微服务之间可以使用不同的开发语言,运行在不同的操作系统平台上,通过标准的协议和数据格式进行交互与协作。
-
离散化的数据管理。在微服务架构中,无法创建或维护统一的数据模型或结构,全局数据模型在不同的系统之间有所区别,需要进行数据模型的离散化管理。
-
基础设施自动化。微服务强调以灵活的方式集成自动部署,通过持续集成工具实现基础设置自动化。
微服务的特点(version B)
希赛版教材的介绍
- 技术异构性
每个服务都是相对独立的个体,每个服务都可以选择合适自己的技术来实现。
- 弹性
系统中的一部分出现故障的时候,不会导致其他系统的问题。而微服务中,每个服务都内置可用性的解决方案与功能降级方案,所以比单块系统强。
- 扩展
单块系统扩展的时候,需要整个系统。而在微服务中,可以针对单个服务进行扩展。
- 与组织结构相匹配
团队越大越难管理,通过微服务把业务分为不同的模块,每个模块都有指定的技术团队,这样有助于组织管理。
- 可组合性
系统会开发很多接口供外部使用。当情况发生时,可以使用不同的方式构建应用,二者同难题化应用程序只能提供一个非常粗粒度的接口供外部服务使用。
- 对可替代性的优化
如果单块系统中如果删除代码中的上百行代码,也许不知道会发生什么,引起什么样的问题,因为带块系统中关联性极强,但是在微服务中,我们可以在需要的时候轻松改写业务,或者删除不需要的业务。
微服务的实现过程
- 分层设计阶段,可分为 五个层次。
(1) 前端
包括web端、app端,小程序端
(2) 对外网管层
负载均衡、路由、鉴权、日志记录等
(3)业务层
各个具体的业务模块。
(4)核心计算层
各个核心非业务功能模块。
(5)存储层
数据库、分布式缓存、分布式文件系统
- 服务开发阶段
分为了哪些服务,用了spring cloud 微服务治理框架。用了dubbo,dubbo采用rpc通信,比restful更高效。
- 服务部署阶段
采用了docker容器化技术等。