一种基于zookeeper的应用管理方法与流程

文档序号:24800836发布日期:2021-04-23 15:58阅读:177来源:国知局
一种基于zookeeper的应用管理方法与流程

1.本发明涉及java应用管理技术领域,特别涉及一种基于zookeeper的应用管理方法。


背景技术:

2.dubbo协议是dubbo默认的协议,它的特点如下:
3.1、连接个数:单连接
4.2、连接方式:长连接
5.3、传输协议:tcp
6.4、传输方式:nio异步传输
7.5、序列化:hessian二进制序列化
8.6、适用范围:传入传出参数数据包较小(建议小于100k),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。
9.7、适用场景:常规远程服务方法调用
10.dubbo协议采用经典定长包头+变长包体的协议设计,包头记录了数据的序列化方式,请求状态,数据长度等信息,包体是请求/响应对象序列化后的二进制数据。
11.zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
12.zookeeper的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
13.目前传统软件行业仍有很多应用是以dubbo协议为核心、基于zookeeper做注册中心的分布式应用架构存在的。
14.此类框架往往存在如下问题:
15.(1)应用实际信息往往无法直接获取,需要开发人员进行详细的接口测试或者代码反编译后才能确定。
16.(2)应用启动/宕机后,应用状态无法实时获知。
17.(3)应用对于公共服务的依赖通常由开发人员进行定义,运维人员并不清楚其中逻辑且无法在环境上对相应的依赖服务进行快速检测与问题定位;
18.(4)内存变量值的变更或错误引用往往是线上问题的密集出错点,然而此类问题的发现通常需要开发人员进行支持;
19.(5)线上应用的模块版本的更新不到位,也可能造成重大事故。
20.基于上述情况,本发明提出了一种基于zookeeper的应用管理方法。


技术实现要素:

21.本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于zookeeper的应用管理方法。
22.本发明是通过如下技术方案实现的:
23.一种基于zookeeper的应用管理方法,其特征在于:利用zookeeper临时节点的特性,实现应用注册与自描述;采用配合约定远程调用的方式,实现应用启动注册,心跳探测应用运行时状态以及为功能开发者提供测试逻辑,最终实现应用自动化管理。
24.需要被管理的应用在应用启动完成时或应用启动过程中,向zookeeper发起一个长链接,注册一个zookeeper持久化节点/app/应用code和zookeeper临时节点/app/应用code/应用实例id;应用zookeeper临时节点的特性,应用宕机时自动销毁临时节点以及节点信息,从而实现应用运行状态的实时探测。
25.应用注册时,除了应用基本信息以外,还要将本地扩展的开放给管理端接口使用的接口信息挂载到对应zookeeper节点下;应用正常运行时,应用管理端通过取得对应zookeeper节点上注册的应用信息从而加载出应用基本信息以及应用提供的个性化可管理服务。
26.应用正常运行时,应用管理端以实时接口调用或定时接口调用方式实现应用管理的目的。
27.应用管理端还可以通过约定方式调用约定接口,获取应用运行的实时状况或者改变实时运行状态。
28.所述约定接口由应用开发人员自行实现(亦可以做一些通用功能扩展),相应功能跟随代码版本迭代,所需技术内容经过封装,管理人员无需了解底层,根据api(application program interface,应用程序接口)进行功能操作即可(也可以做成动态规则页面)。
29.当需要获取对应应用信息时,应用管理端管理服务接口自描述信息组织调用参数,发起请求获得相应结果;
30.若管理服务接口为信息获取接口,即可获取应用运行状态快照,结果内容返回应用管理端;
31.若管理服务接口为操作性接口,则触发相应操作并获得结果;应用管理端根据需要选择是否记录相应操作结果。
32.当需要获取线上应用依赖的外部接口运行情况时,通过管理服务接口向指定应用实例发起请求,由开发人员统一编写调用,探知服务执行情况,并返回给服务管理端。
33.当系统外部依赖服务进入异常状态后,由服务端发起请求,将远程服务改为本地记录表,然后后再用定时任务批量调用管理服务接口,以达到异常隔离,提升应用可用性的目的。
34.本发明的有益效果是:该基于zookeeper的应用管理方法,不仅能够实现应用启动即注册信息,支持开发人员自定义扩展应用管理接口,同时约定方式的应用接口自描述以及接口调用方式能够从使用上增幅应用的功能性以及应用的互操作性,解决了电子政务行业运维普遍缺失技术思维的问题,为实现自动化运维提供了方便。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.附图1为本发明基于zookeeper的应用管理架构示意图。
37.附图2为本发明远程调用命令处理流程示意图。
具体实施方式
38.为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
39.该基于zookeeper的应用管理方法,利用zookeeper临时节点的特性,实现应用注册与自描述;采用配合约定远程调用的方式,实现应用启动注册,心跳探测应用运行时状态以及为功能开发者提供测试逻辑,最终实现应用自动化管理。
40.需要被管理的应用在应用启动完成时或应用启动过程中,向zookeeper发起一个长链接,注册一个zookeeper持久化节点/app(application,应用程序)/应用code(代码)和zookeeper临时节点/app/应用code/应用实例id;应用zookeeper临时节点的特性,应用宕机时自动销毁临时节点以及节点信息,从而实现应用运行状态的实时探测。
41.应用注册时,除了应用基本信息以外,还要将本地扩展的开放给管理端接口使用的接口信息挂载到对应zookeeper节点下;应用正常运行时,应用管理端通过取得对应zookeeper节点上注册的应用信息从而加载出应用基本信息以及应用提供的个性化可管理服务。
42.应用正常运行时,应用管理端以实时接口调用或定时接口调用方式实现应用管理的目的。
43.应用管理端还可以通过约定方式调用约定接口,获取应用运行的实时状况或者改变实时运行状态。
44.所述约定接口由应用开发人员自行实现(亦可以做一些通用功能扩展),相应功能跟随代码版本迭代,所需技术内容经过封装,管理人员无需了解底层,根据api(application program interface,应用程序接口)进行功能操作即可(也可以做成动态规则页面)。
45.当需要获取对应应用信息时,应用管理端管理服务接口自描述信息组织调用参数,发起请求获得相应结果;
46.若管理服务接口为信息获取接口,即可获取应用运行状态快照,结果内容返回应用管理端;
47.若管理服务接口为操作性接口,则触发相应操作并获得结果;应用管理端根据需要选择是否记录相应操作结果。
48.当需要获取线上应用依赖的外部接口运行情况时,通过管理服务接口向指定应用实例发起请求,由开发人员统一编写调用,探知服务执行情况,并返回给服务管理端。
49.当系统外部依赖服务进入异常状态后,由服务端发起请求,将远程服务改为本地记录表,然后后再用定时任务批量调用管理服务接口,以达到异常隔离,提升应用可用性的
目的。
50.以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1