背景
大型电商网站是基于 SOA 架构的,如此大规模的服务架构,需要一个高效、快速、优雅的服务治理平台,本文介绍如何搭建一个高效的服务治理平台。
内容
服务治理平台
服务治理平台,建立的初衷是:
- 可实现对服务健康状况的管理、跟踪每个服务请求的全生命周期
- 可实现故障隔离、优雅降级,快速响应和定位问题
- 可管理服务之间的依赖关系
设计这个服务治理平台时,采用几个设计原则:
- 分布式架构
- 无中心
- 无单点
平台架构设计
如图所示,这就是服务治理平台的架构设计,采用了 ZooKeeper、Detector、消息中间件、MySQL、MongoDB 等开源技术进行搭建。
工作流程:
- 步骤1:服务提供方(Service Provider),首先要向 ZooKeeper Cluster 提交注册申请,注册成功后才可以对外提供服务。
- 步骤2::ZooKeeper Cluster 把可用的服务提供方列表,推送给服务使用方(Service Consumer),服务使用方只能使用列表里认证的服务提供方。
- 步骤3:服务使用方,向服务提供方请求服务。
- 步骤4:服务提供方,成功回应服务请求方的请求。
其他流程:
- 同时,服务提供方、服务使用方,都会推送一条调用日志给 Jumper Broker,信息的主要内容是调用频次、响应时间等,Jumper Broker 把这些信息经过分析和处理后,把结果发送给 Detector。
- Detector 记录这些信息,并且把这些信息推送给 ZooKeeper Cluster。
- 如果某个服务的响应时间越来越慢,ZooKeeper Cluster 就会发现,并且及时做出调整,比如,不再给这个服务分配那么多的调用量,直到它的状态恢复正常为止。
其他技术实现
- 从上图中,可以注意到 ZooKeeper Cluster、Jumper Broker、Detector 都是集群部署,确保了服务治理平台本身的高可用性。
- 在技术实现上,也采用异步消息机制、RPC 框架,使得架构本身无中心、无单点,可支持上万个节点。
整个平台,部署起来也非常简单,只要把服务治理平台的客户端,跟服务一起部署,做些简单配置就可以了。
推荐资料
上一章教程
该系列教程
我的专栏
至此,全部介绍就结束了
-------------------------------
-------------------------------
关于我(个人域名,更多我的信息)
期望和大家一起学习,一起成长,共勉,O(∩_∩)O谢谢
欢迎交流问题,可加个人QQ 469580884,
或者,加我的群号 751925591,一起探讨交流问题
不讲虚的,只做实干家
Talk is cheap,show me the code