微服务一名出自 James Lewis & Martin Fowler 2014年3月25日写《Microservices》
原文地址:https://martinfowler.com/articles/microservices.html
一个比较完整的SpringCloud 全家桶 demo: https://github.com/coderzc/springcloud
微服务几个特点
- 一系列微小的服务共同组成
- 跑在自己的进程里
- 每个服务为独立的业务开发
- 独立部署
- 分布式管理
微服务是一种架构风格,没有强制性和绝度标准答案
架构演进历史:
架构演进.png
单体架构.png
单体架构缺点:
- 开发效率低
- 代码维护难
- 部署不灵活
- 稳定性不高
- 扩展性不够
前后端分离.png
分布式.png
微服务必定是分布式的,而分布式系统不一定是微服务
简单微服务架构.png
微服务架构的基础框架/组件
- 服务注册发现中心
- 服务网关(Service Gateway)
- 后端通用服务(也称中间层服务Middle Tier Service)
- 前端服务(也称边缘服务Edge Service)负责服务的聚合与裁剪
微服务两大实现手段
Dubbo | Spring Cloud | |
---|---|---|
服务注册中心 | Zookeeper | Spring Cloud Netflix Eureka |
服务调用方式 | RPC | REST API |
服务网关 | 无 | Spring Cloud Netflix Zuul |
服务跟踪 | 无 | Spring Cloud Sleuth |
断路器 | 不完善 | Spring Cloud Netflix Hystrix |
分布式配置 | 无 | Spring Cloud Config |
消息总线 | 无 | Spring Cloud Bus |
数据流 | 无 | Spring Cloud Stream |
批量任务 | 无 | Spring Cloud Task |
最后上一张Spring Cloud 微服务架构图:
image.png