一、架构的演进:
① 单体架构
② SOA
③ 微服务
⑴ 单体架构存在的缺点:
- 复杂性逐渐变高
- 技术债务逐渐上升
- 部署速度逐渐变慢
- 阻碍技术创新
- 无法按需伸缩
二、微服务的特性
- 每个微服务课独立运行在自己的进程里;
- 一系列独立运行的微服务共同构建起了整个系统;
- 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如订单管理、用户管理等;
- 微服务之间通过一些轻量级的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。
三、微服务的优点
- 易于开发和维护
- 启动较快
- 局部修改容易部署
- 技术栈不受限
- 按需伸缩
- DevOps(具备相应的自动化工具可以辅助运维。)
四、微服务带来的挑战
- 运维要求较高
- 分布式的复杂性
- 接口调整成本高
- 重复劳动
五、微服务设计原则
- 单一职责原则
- 服务自治原则
- 轻量级通信原则
- 接口明确原则
六、微服务开发框架浅谈
- Spring Cloud: http://projects.spring.io/spring-cloud
- Dubbo: http:/dubbo.io
- Dropwizard: http://www.dropwizard.io
- Consul、etcd&etc