微服务(一)微服务理念
单体架构存在的问题:
- 复杂性高
- 技术债务
- 部署频率低
- 可靠性差
- 扩展能力受限
- 阻碍技术创新
什么是微服务:
微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常使用http资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务公用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的存储技术。
特性:
- 每个微服务可独立运行在自己的进程里
- 一系列独立运行的微服务共同构建起整个系统
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能
- 微服务之间通过一些轻量的通信机制进行通信。例如通过RESTful API进行调用
- 可以使用不同的语言与数据存储技术
- 全自动的部署机制
微服务架构的优点:
- 易于开发和维护
- 单个微服务启动快
- 局部修改容易部署
- 技术栈不受限
- 按需伸缩
微服务架构面临的挑战
- 运维要求较高
- 分布式固有的复杂性
- 接口调整成本高
微服务设计原则:
- 单一职责原则
- 服务自治原则
- 轻量级通信机制
- 微服务粒度
如何实现微服务架构:
技术选型:
- 开发框架的选择,可以使用spring cloud作为微服务开发框架,或者使用dubbo。
- 运行平台。docker。
微服务架构图: