核格分布式应用服务(HKDAS,HearKen Distributed Application Service),是一个分布式应用集中监控管理的企业级云计算解决方案。HKDAS包括分布式应用核心框架、分布式数据化运营、应用全生命周期管理等,以应用为中心,集成到企业级分布式应用服务平台上,帮助企业级客户轻松构建并托管分布式应用服务体系。其提供高性能的RPC框架,能构建高可用的分布式系统,考虑各个应用之间的分布式服务发现、服务路由、服务调用及服务安全等细节,并且能单独部署到公司内网。
核格分布式应用服务主要有以下4个特点:
(2)集众家之长:DUBBO、HSF、Spring Cloud、SOFA等为参考对象。
(3)自主可控:核格RPC协议,从底层开始的细粒度完全控制。
(4)多种运行环境:一个物理机可部署多个应用,也可虚拟化部署。
核格分布式应用服务的关键词如图5-10所示。
图5-10 HKDAS的关键词
1.应用的基本架构
1)HKDAS逻辑架构
HKDAS基于核格方法论的思想,遵循软件开发规范和安全标准规范,同时以虚拟化容器和物理IT基础设施作为基础,能够适配第三方容器架构和服务架构。
其逻辑架构如图5-11所示。
图5-11 HKDAS的逻辑架构
2)HKDAS部署架构
核格分布式应用服务的部署极为灵活,不仅可以部署于虚拟化环境(云化部署),也可直接部署于物理环境(私有化部署,移动端、物联网、浏览器等),以适应特殊的业务、安全要求,同时核格分布式应用服务还可进行离线或在线扩展,通过远程控制访问。
其部署架构如图5-12所示。
图5-12 HKDAS的部署架构
3)HKDAS容器组成
核格分布式应用服务的容器组成(见图5-13)包括:应用软件包、应用IOC容器、负载均衡器、应用启动器、异步长连接通信框架和容器管理等。
图5-13 HKDAS的容器组成
4)HKDAS组成模块
核格分布式应用服务主要组成模块有服务注册中心、服务监控中心、服务提供者、服务消费者、应用管理和容器管理。组成模块之间的关系如图5-14所示。
图5-14 模块关系(www.xing528.com)
“服务提供者”启动时会扫描类上的相关注解,获取自身提供的服务的元数据,将服务注册到“注册配置中心”。当“服务消费者”启动时,也会扫描相关的注解提取相关的服务订阅信息,向“注册配置中心”发起服务订阅请求,“注册配置中心”将该服务消费者所需的服务元数据推送回去,“服务消费者”拿到这些服务的元数据,就可以在需要调用远程服务的时候,直接向“服务提供者”发起服务的远程调用。“注册配置中心”在有“服务提供者”发起服务注册请求的时候,会检测是否有“服务消费者”已经订阅了其中的某些服务,如果存在有这样的服务,“注册配置中心”也会将该服务提供者的信息推送到订阅了该服务的消费者。消费者需要调用服务时,如果调用的服务的“服务提供者”存在多个,会提供给消费者三种负载均衡的策略算法去调用这些服务,形成客户端负载均衡模式。这三种算法策略包括:随机选择法、轮询法和基于权重的随机法。服务在调用时根据这三种策略选出其中一个服务提供者直接调用。
负载均衡策略解释:
(1)随机法:从所要调用服务的提供者列表中随机选择一个。
(2)轮询法:按照所要调用服务的提供者列表依次调用。
(3)基于权重的随机法:根据权重去选择从所要调用服务的提供者列表中随机选择一个,权重值越大随机到的概率越大。例如,某一个服务有三个提供者,权重分别为5、10和15,那么这三个服务随机到的概率分别为1/6、1/3和1/2。
HKDAS中服务消费者和服务提供者之间使用RPC长连接通信,与链路跟踪(APM)之间使用非入侵式探针通信,与注册中心之间使用心跳的方式通信。其交互关系如图5-15所示。
图5-15 HKDAS模块之间的交互关系
5)HKDAS技术交互过程
核格分布式应用服务的技术交互过程如图5-16所示,服务消费者调用服务远程(同步或异步的方式)后由服务代理执行数据序列化,通过异步非阻塞通信框架后达到HKDAS容器,然后经过数据反序列化在处理线程池中进行服务本地调用,调用的即为服务提供者提供的服务。
图5-16 HKDAS技术交互过程
6)HKDAS应用建议场景
在核格分布式应用服务的应用中,建议:
(1)REST接口面向终端,RPC面向服务端。
(2)业务色彩浓的用REST接口封装,通用性强的用RPC实现。
(3)把有状态的业务服务改变为无状态的计算类服务。
其应用场景如图5-17所示。
图5-17 HKDAS的应用场景
2.系统软硬要求
部署HKDAS所需要的系统最低性能要求:
(1)操作系统:Linux内核3.10以上,Windows 7及以上版本。
(2)CPU:双核及以上,主频2.5GHz及以上。
(3)内存:8GB。
(4)JER:1.8及以上版本。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。