微服务架构:微服务架构就是一种将单一应用程序开发为一组小型服务的方法,每个微服务运行在自己的进程中,服务间采用轻量级通信机制(通常是http资源api),这些服务围绕业务能力构建并且可以通过独立部署,服务可用不同的语言开发,使用不同的数据存储技术。
微服务架构特性:
- 每个微服务运行在独立的进程里。
- 一系列独立运行的微服务共同构建起整个系统
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,比如订单管理、用户管理等。
- 微服务之间通过轻量级框架通信
- 可以使用不同的语言与数据存储技术。
- 可独立部署
微服务架构优点
- 易于开发和维护
- 单个微服务启动较快
- 局部修改容易部署
- 技术栈不受限
微服务架构面临的挑战
- 运维要求较高:更多的服务意味着更多的运维投入,
- 分布式固有的复杂性:
- 接口调整成本高:
微服务设计原则:
- 单一职责原则
- 服务自治原则:每个微服务应具备独立的业务能力,依赖于运行环境
- 轻量级通信机制
- 微服务粒度
微服务架构技术选型
springcloud、dubbo。这两个是主流的微服务架构技术选型
springcloud优点
- 约定优于配置
- 开箱即用,快速启动
- 组件丰富