API Gateway(Api 网关)编程
为体系(或子系统)提供统一的访问入口跨域
在统一访问的基础上,可以实现缓存
访问的认证与受权(策略控制)安全
动态路由服务器
服务迁移架构
负载均衡负载均衡
限流、降级等反向代理框架
测试规划运维
压力测试异步
金丝雀测试(灰度测试)
服务注册中心(Service Register Server)
全部微服务都会注册在中心
注册中心提供功能(服务器端)
服务注册
服务下线
服务续约
剔除失效服务
客户端
服务获取
服务调用
容错
大体可归为三类:
配置管理中心(Configuration Server)
分布式配置管理中心
每一个服务都有可能包含不一样类型的配置
提供的经常使用功能
提供统1、集中配置管理
不一样环境提供不一样配置
运行期间的动态配置更新
配置版本管理(回滚)
受权与认证服务(策略控制)
一般是身份认证与安全控制
服务提供的功能
安全、简单和开放
服务无状态
能跨语言、跨服务(甚至跨域)调用传递
具备足够性能
OAuth2/JWT
断路器与容错机制
分布式系统中不可避免失败,因此须要创建一种有效的防护机制来避免和隔离失败
断路器或容错机制须要面对:
隔离:线程隔离,信号量隔离。避免个别服务故障扩大。
熔断:当失败率达某阈值时,触发快速失败
降级:超时降级、熔断降级,可使用回调返回保底数据
缓存:请求缓存、请求合并
实时监控与报警
分布式服务追踪与日志整合
根据服务的划分,带来就是一个业务会由多个服务协做完成,造成调用链。
咱们须要追踪和监控这些链路,最终掌握服务的工做质量
每一个调用的实时数据收集
数据存储
数据分析与展现
消息总线与消息驱动
EDA:事件驱动架构,自己就是一个应用普遍的设计与开发思想。消息发布者只关注消息的发布,而消费者只关注本身感兴趣的消息。
EDA 带来的好处:
低耦合
持久性
高可扩展性
高灵活性
运行环境平台管理
使用 Docker 做为每一个微服务的运行容器
引入 Docker 管理平台
OpenShift Origin (RadHat)
Kubernetes(CNCF)
其余内容
数据存储
MySQL
Splunk
ELK
Redis
消息忠线
DevOps
Jenkins --- 持续集成
Git --- 源代码管理
Ansible --- 运维
云应用开发框架
Spring Cloud 全家桶
Dubbo (阿里巴巴)
Vert.X (Eclipse 基金会)
Spring 家族
Spring Framework -- 基础
Spring Boot -- 应用整合
简化配置
大量应用整合
Spring Data 数据存取
Spring Cloud 云应用整合
Spring Security -- 安全
Spring Cloud 全家桶
提供完整微服务开发框架
API 网关
Spring Cloud Netflix Zuul
Spring Cloud Gateway
服务注册中心
Spring Cloud Netflix Eureka
Spring Cloud Consul
Spring Cloud ZooKeeper
配置管理中心
受权与认证服务
断路器与容错处理
分布式服务追踪与日志整合
Spring Cloud Sleuth
Spring Cloud Zipkin
消息总线与消息驱动
Spring Cloud Stream
Spring Cloud Bus
其余
客户端负载均衡:Spring Cloud Ribbon
REST 声明式编程:Spring Cloud Feign