1. 传统的架构:单体架构
定义:架构单体应用的架构风格,称之为单体架构
缺点:
复杂性较高,部署速度较慢,无法扩展业务。。。。。
2. 架构的演进:
单体架构 - SOA - 微服务
3. 什么是微服务
MartinFowler:简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。
4. 微服务特性
1.每个微服务可独立运行在自己的进程里;
2.一系列独立运行的微服务共同构建起了整个系统;
3.每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;
4.微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。
5. 微服务优点
易于开发与维护,易于扩展业务,局部修改容易部署,启动速度快
6. 微服务带来的挑战
分布式较复杂,运维成本高,接口调整成本高,重复劳动力
7. 微服务设计原则
单一职责原则
服务自治原则
轻量级通信原则
接口明确原则
8. 微服务开发框架
Spring Cloud / Dubbo / Dropwizard / Consl / etcd 等等