微服务是什么?
问题总结
- 微服务是什么?
- 微服务架构和单体架构的不同点?
- 微服务的特点?
- 微服务的框架?
问题答案:
- 微服务是什么
微服务,顾名思义,即”微小的服务“。
(1)“服务”:项目中的功能模块,比如开发过程中IDEA中的一个module。
(2)”微小“:
- 一个微服务项目代码量少,复杂度低。
- 一个微服务项目需要成员少,8-10个人员(开发2-5)即可完成从设计、开发、测试到运维的全部工作。
- 微服务架构和单体架构的不同点
不同点 | 微服务架构 | 单体架构 |
---|---|---|
团队规模 | 每个服务团队规模小 | 大型团队,团队管理成本大 |
数据存储方式 | MySQL或Redis,每个服务使用不同数据存储方式 | 共用一个公共数据库 |
部署方式 | 每个服务独立部署 | 更新功能或bug修复必须整体重新部署 |
开发模式 | 不同模块使用不同的开发语言,如Java、go | 整体使用一个开发语言 |
故障隔离 | 故障被隔离于单个服务 | 一个故障,整体不可用 |
项目结构 | 每个服务完成一项特定业务需求 | 业务逻辑,集中于一个项目 |
- 微服务框架
- 按照业务划分,每个服务专注于一个特定业务,代码量少,复杂度低,易于维护。
- 每个服务独立开发、部署和运行,且代码量少,因此启动和运行速度快。
- 团队规模小。
- 某个服务修改,只需要单独发布该服务。
- 不同微服务使用不同的开发语言和工具。
- 微服务具备良好的可扩展性。随着业务增加,微服务代码量增大,可根据业务对该微服务再次拆分。可集群化部署微服务。
- 微服务和docker配合使用,实现快速迭代、构建、部署。
- 微服务框架
- Java框架:
- Spring Cloud:使用REST服务构建微服务,帮助架构师构建出一套完整的微服务技术生态链。
- Spark:通过Java8和Kotlin创建微服务架构的应用程序。
- Dubbo:阿里巴巴开源的分布式服务治理框架。