中间件原理

【阿里中台战略】架构演进以及HSF框架架构

2018-03-13  本文已影响49人  Rockie_h

框架演进

架构演进图.jpg
中心化架构主要解决的问题:通过ESB,实现异构系统间的交互。
中心化架构的主要问题:中心(消息总线)的可扩展性,以及由此可能带来的“雪崩”效应。 图3-5 HSF服务框架工作原理示意图.jpg
主要组件
服务提供者:多节点部署,运行在优化定制后的Tomcat容器中,虚拟机部署,后续可能迁移到Docker容器;
服务消费者:多节点服务,运行在Tomcat容器;
地址服务器:给Provider和Consumer提供部署环境中所有配置服务器和Diamond服务器列表信息,使用Nginx实现。HSF部署时,会将整个环境中的配置服务器和Diamond服务器集群信息设置在地址服务器上。多节点部署;
配置服务器:记录环境内服务请求和订阅信息,保存在内容中,并将相关服务信息推送到服务节点上。长连接,心跳监测,一旦发现故障服务提供者,自动推动更新后的Provider给Consumer,完成故障隔离。可轻易实现服务调用路由的调整。相当于服务调用调度的指挥官;
Diamond服务器:通用的统一配置管理服务(类似zookeeper),给应用提供统一的配置设置和推送服务。在HSF中,主要承担服务调用过程中对于服务调用安全管控的规则、服务路由权重、服务QPS阈值等配置规则的保存,持久化在mysql中。
主要处理流程
1 服务节点对配置服务器列表的获取:服务调用者和提供者随着Tomcat容器启动后,会以域名方式获取到可用的地址服务器,然后向地址服务器请求服务器列表,包括 配置服务器和Diamond服务器的IP列表信息,如同中的步骤1、2;
2 服务的注册发布:Provider Service获取到配置服务器列表后,则向配置服务器发送服务提供者的接口信息,以及所有服务器的IP、端口等,如图步骤3;
3 服务订阅:Consumer Service服务启动后,向配置服务器订阅所需要的服务(服务接口全名+服务版本),配置服务器返回对应服务提供者IP和端口等,如果步骤4、5;
4 服务规则推送(如果需要):在有需要服务安全管控、流量控制等需求时,可通过Diamond服务器提供的规则设置界面,对指定的服务提供者和消费者设置相关的规则,规则保存后,会在5S内推送给所设置服务相关的服务节点上,如图步骤6;
5 服务交互:如果步骤7;
框架特点
1 采用Netty+Hession数据序列化实现服务交互:Netty多路复用TCP长连接。Hession简洁、高效、跨语言;
2 容错:
HSF容错机制.jpg
3 水平扩容:根据实际网络压力情况,弹性调整实例数目,就可以实现水平扩容。比如在大促、秒杀等活动期间,服务访问量大增,通过新增服务提供者实例来增加服务处理能力。新增加的服务提供者实例一旦应用启动完成,可以在几秒内完成上线(完成服务注册发布,更新后的服务列表推送到服务调用者端),开始处理请求。

微服务的主要特点
小:规模小,但是不能过小,一个完整的业务;
独:独立开发、独立部署、独立运维;
轻:轻量级通信机制,Restful;
松:松耦合,无状态。

上一篇下一篇

猜你喜欢

热点阅读