书签 分享 收藏 举报 版权申诉 / 11

基于ZOOKEEPER的节点配置方法和基于ZOOKEEPER的节点配置系统.pdf

  • 上传人:b***
  • 文档编号:4073830
  • 上传时间:2018-08-14
  • 格式:PDF
  • 页数:11
  • 大小:1.49MB
  • 摘要
    申请专利号:

    CN201410745771.3

    申请日:

    2014.12.08

    公开号:

    CN104486108A

    公开日:

    2015.04.01

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):H04L 12/24申请日:20141208|||公开

    IPC分类号:

    H04L12/24; H04L29/08

    主分类号:

    H04L12/24

    申请人:

    畅捷通信息技术股份有限公司

    发明人:

    郝学武

    地址:

    100094北京市海淀区北清路68号用友软件园

    优先权:

    专利代理机构:

    北京友联知识产权代理事务所(普通合伙)11343

    代理人:

    尚志峰; 汪海屏

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了一种基于Zookeeper的节点配置方法和一种基于Zookeeper的节点配置系统,其中,基于Zookeeper的节点配置方法包括:当检测到来自客户端的对服务的运行请求时,为所述服务在Zookeeper中建立至少一个节点;启动任一线程对所述至少一个节点的工作状态进行检测;根据检测结果,对所述至少一个节点进行处理。通过该发明的技术方案,可以在节点处于故障状态时,及时告知客户端,并为客户端移除该节点,从而保证客户端的服务质量,实现软负载均衡和高可用性,避免因某一节点中断而导致服务不可用。

    权利要求书

    权利要求书1.  一种基于Zookeeper的节点配置方法,其特征在于,包括: 当检测到来自客户端的对服务的运行请求时,为所述服务在 Zookeeper中建立至少一个节点; 启动任一线程对所述至少一个节点的工作状态进行检测; 根据检测结果,对所述至少一个节点进行处理。 2.  根据权利要求1所述的基于Zookeeper的节点配置方法,其特征 在于,所述为所述服务在Zookeeper中建立至少一个节点,具体包括: 在所述Zookeeper中为所述服务确定指定路径; 在确定的所述指定路径上为所述服务建立所述至少一个节点。 3.  根据权利要求2所述的基于Zookeeper的节点配置方法,其特征 在于,在所述为所述服务在Zookeeper中建立至少一个节点之后,还包 括: 将所述客户端的网络协议注册到所述指定路径上的网络协议列表中, 并将注册结果保存至所述客户端的缓存列表,以供所述客户端通过所述缓 存列表访问所述节点。 4.  根据权利要求3所述的基于Zookeeper的节点配置方法,其特征 在于,所述对所述至少一个节点的工作状态进行检测,具体包括: 对所述至少一个节点进行绑定监听; 根据监听结果,确定所述节点的工作状态,其中, 所述节点的所述工作状态包括正常连接状态或连接故障状态。 5.  根据权利要求4所述的基于Zookeeper的节点配置方法,其特征 在于,所述根据检测结果,对所述至少一个节点进行处理,具体包括: 确定所述至少一个节点中是否有节点处于所述连接故障状态; 当确定所述至少一个节点中的任一节点处于所述连接故障状态时,为 所述客户端移除所述任一节点; 在移除所述任一节点后,更新所述客户端的所述缓存列表,以使所述 客户端访问所述至少一个节点中的所述任一节点以外的其他节点。 6.  一种基于Zookeeper的节点配置系统,其特征在于,包括: 节点建立单元,当检测到来自客户端的对服务的运行请求时,为所述 服务在Zookeeper中建立至少一个节点; 节点工作状态检测单元,启动任一线程对所述至少一个节点的工作状 态进行检测; 处理单元,根据检测结果,对所述至少一个节点进行处理。 7.  根据权利要求6所述的基于Zookeeper的节点配置系统,其特征 在于,所述节点建立单元具体用于: 在所述Zookeeper中为所述服务确定指定路径,并在确定的所述指定 路径上为所述服务建立所述至少一个节点。 8.  根据权利要求7所述的基于Zookeeper的节点配置系统,其特征 在于,还包括: 注册单元,在所述为所述服务在Zookeeper中建立至少一个节点之 后,将所述客户端的网络协议注册到所述指定路径上的网络协议列表中; 保存单元,将注册结果保存至所述客户端的缓存列表,以供所述客户 端通过所述缓存列表访问所述节点。 9.  根据权利要求8所述的基于Zookeeper的节点配置系统,其特征 在于,所述节点工作状态检测单元包括: 监听单元,对所述至少一个节点进行绑定监听;以及 所述节点工作状态检测单元具体用于: 根据监听结果,确定所述节点的工作状态,其中, 所述节点的所述工作状态包括正常通信状态、故障状态或断开状态。 10.  根据权利要求9所述的基于Zookeeper的节点配置系统,其特征 在于,所述处理单元包括: 确定单元,确定所述至少一个节点中是否有节点处于所述连接故障状 态; 节点移除单元,当确定所述至少一个节点中的任一节点处于所述连接 故障状态时,为所述客户端移除所述任一节点; 更新单元,在移除所述任一节点后,更新所述客户端的所述缓存列 表,以使所述客户端访问所述至少一个节点中的所述任一节点以外的其他 节点。

    说明书

    说明书基于Zookeeper的节点配置方法和基于Zookeeper的节点配置系统
    技术领域
    本发明涉及通信技术领域,具体而言,涉及一种基于Zookeeper的节 点配置方法和一种基于Zookeeper的节点配置系统。
    背景技术
    目前,市场上的大型企业级应用软件的主要使用编码式的开发方式或 一次开发持续运行方式。其中,编码式的开发方式使得快速开发企业级应 用软件的愿望难以实现,而一次开发持续运行的方式导致了软件的僵化。
    现有技术中的软件不但难以适应客户需求的变化,而且每次对软件进 行修改都必须在代码层上推倒重来,从而降低了工作效率,也造成了资源 的浪费。除此之外,现有技术中的软件不仅工程代码繁多,不利于软件的 抽象化和模块化,而且软件的性能也比较难优化。
    因此需要一种新的技术方案,可以实现系统的软负载均衡和高可用 性。
    发明内容
    本发明正是基于上述问题,提出了一种新的技术方案,可以实现系统 的软负载均衡和高可用性。
    有鉴于此,本发明的一方面提出了一种基于Zookeeper的节点配置方 法,包括:当检测到来自客户端的对服务的运行请求时,为所述服务在 Zookeeper中建立至少一个节点;启动任一线程对所述至少一个节点的工 作状态进行检测;根据检测结果,对所述至少一个节点进行处理。
    在该技术方案中,可以在客户端使用服务的过程中对客户端访问的节 点的工作状态进行检测,并判断检测到的该节点的工作状态是否正常,以 便在节点处于故障状态时,及时告知客户端,并为客户端移除该节点,从 而保证客户端的服务质量,实现软负载均衡和高可用性,避免因某一节点 中断而导致服务不可用。
    在该技术方案中,优选地,所述为所述服务在Zookeeper中建立至少 一个节点,具体包括:在所述Zookeeper中为所述服务确定指定路径;在 确定的所述指定路径上为所述服务建立所述至少一个节点。
    在该技术方案中,在服务器启动后,搭建Zookeeper集群,并可以在 Zookeeper的指定路径为客户端建立可访问的节点。其中,每个服务建立 3个java工程:core(接口定义包)、server(服务端包)、client(客户 端包),core存放所有接口和公用bean,server为这个服务的model、 dao、cache、service核心实现层,client为该服务的对外暴露接口,以及 Server和Client基于socket(套接字)进行通信,Server启动后在 Zookeeper指定路径建立临时节点,其value(关键字)为该服务所在的机 器的网络协议。
    在该技术方案中,优选地,在所述为所述服务在Zookeeper中建立至 少一个节点之后,还包括:将所述客户端的网络协议注册到所述指定路径 上的网络协议列表中,并将注册结果保存至所述客户端的缓存列表,以供 所述客户端通过所述缓存列表访问所述节点。
    在该技术方案中,Client对外提供该服务接口,需要调用该服务的系 统用项目管理工具,如maven,将该client依赖进来,web(网页)容器 启动时候会从特定路径读取已注册服务网络协议列表,将结果放到缓存列 表,以便客户端通过缓存列表访问节点。
    在该技术方案中,优选地,所述对所述至少一个节点的工作状态进行 检测,具体包括:对所述至少一个节点进行绑定监听;根据监听结果,确 定所述节点的工作状态,其中,所述节点的所述工作状态包括正常连接状 态或连接故障状态。
    在该技术方案中,利用预定的监听机制对节点绑定监听,如果监听值 发生变化,说明节点的工作状态发生变化,则更新缓存列表,以保证服务 的可用性。
    在该技术方案中,优选地,所述根据检测结果,对所述至少一个节点 进行处理,具体包括:确定所述至少一个节点中是否有节点处于所述连接 故障状态;当确定所述至少一个节点中的任一节点处于所述连接故障状态 时,为所述客户端移除所述任一节点;在移除所述任一节点后,更新所述 客户端的所述缓存列表,以使所述客户端访问所述至少一个节点中的所述 任一节点以外的其他节点。
    在该技术方案中,当节点发生故障时,可以及时摘除该节点,以使客 户端通过其他节点访问服务器,另外,如果节点由于网络不稳等因素导致 故障或被摘除,可以立即再次注册该节点。
    本发明的另一方面提出了一种基于Zookeeper的节点配置系统,包 括:节点建立单元,当检测到来自客户端的对服务的运行请求时,为所述 服务在Zookeeper中建立至少一个节点;节点工作状态检测单元,启动任 一线程对所述至少一个节点的工作状态进行检测;处理单元,根据检测结 果,对所述至少一个节点进行处理。
    在该技术方案中,可以在客户端使用服务的过程中对客户端访问的节 点的工作状态进行检测,并判断检测到的该节点的工作状态是否正常,以 便在节点处于故障状态时,及时告知客户端,并为客户端移除该节点,从 而保证客户端的服务质量,实现软负载均衡和高可用性,避免因某一节点 中断而导致服务不可用。
    在该技术方案中,优选地,所述节点建立单元具体用于:在所述 Zookeeper中为所述服务确定指定路径,并在确定的所述指定路径上为所 述服务建立所述至少一个节点。
    在该技术方案中,在服务器启动后,搭建Zookeeper集群,并可以在 Zookeeper的指定路径为客户端建立可访问的节点。其中,每个服务建立 3个java工程:core(接口定义包)、server(服务端包)、client(客户 端包),core存放所有接口和公用bean,server为这个服务的model、 dao、cache、service核心实现层,client为该服务的对外暴露接口,以及 Server和Client基于socket(套接字)进行通信,Server启动后在 Zookeeper指定路径建立临时节点,其value(关键字)为该服务所在的机 器的网络协议。
    在该技术方案中,优选地,还包括:注册单元,在所述为所述服务在 Zookeeper中建立至少一个节点之后,将所述客户端的网络协议注册到所 述指定路径上的网络协议列表中;保存单元,将注册结果保存至所述客户 端的缓存列表,以供所述客户端通过所述缓存列表访问所述节点。
    在该技术方案中,Client对外提供该服务接口,需要调用该服务的系 统用项目管理工具,如maven,将该client依赖进来,web(网页)容器 启动时候会从特定路径读取已注册服务网络协议列表,将结果放到缓存列 表,以便客户端通过缓存列表访问节点。
    在该技术方案中,优选地,所述节点工作状态检测单元包括:监听单 元,对所述至少一个节点进行绑定监听;以及所述节点工作状态检测单元 具体用于:根据监听结果,确定所述节点的工作状态,其中,所述节点的 所述工作状态包括正常通信状态、故障状态或断开状态。
    在该技术方案中,利用预定的监听机制对节点绑定监听,如果监听值 发生变化,说明节点的工作状态发生变化,则更新缓存列表,以保证服务 的可用性。
    在该技术方案中,优选地,所述处理单元包括:确定单元,确定所述 至少一个节点中是否有节点处于所述连接故障状态;节点移除单元,当确 定所述至少一个节点中的任一节点处于所述连接故障状态时,为所述客户 端移除所述任一节点;更新单元,在移除所述任一节点后,更新所述客户 端的所述缓存列表,以使所述客户端访问所述至少一个节点中的所述任一 节点以外的其他节点。
    在该技术方案中,当节点发生故障时,可以及时摘除该节点,以使客 户端通过其他节点访问服务器,另外,如果节点由于网络不稳等因素导致 故障或被摘除,可以立即再次注册该节点。
    通过以上技术方案,可以在节点处于故障状态时,及时告知客户端, 并为客户端移除该节点,从而保证客户端的服务质量,实现软负载均衡和 高可用性,避免因某一节点中断而导致服务不可用。
    附图说明
    图1示出了根据本发明的一个实施例的基于Zookeeper的节点配置方 法的流程图;
    图2示出了根据本发明的一个实施例的基于Zookeeper的节点配置系 统的框图;
    图3示出了根据本发明的一个实施例的进行节点配置的示意图。
    具体实施方式
    为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附 图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不 冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
    在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是, 本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明 的保护范围并不受下面公开的具体实施例的限制。
    图1示出了根据本发明的一个实施例的基于Zookeeper的节点配置方 法的流程图。
    如图1所示,根据本发明的一个实施例的基于Zookeeper的节点配置 方法,包括:
    步骤102,客户端的对服务的运行请求时,为服务在Zookeeper中建 立至少一个节点。
    步骤104,动任一线程对至少一个节点的工作状态进行检测。
    步骤106,据检测结果,对至少一个节点进行处理。
    在该技术方案中,可以在客户端使用服务的过程中对客户端访问的节 点的工作状态进行检测,并判断检测到的该节点的工作状态是否正常,以 便在节点处于故障状态时,及时告知客户端,并为客户端移除该节点,从 而保证客户端的服务质量,实现软负载均衡和高可用性,避免因某一节点 中断而导致服务不可用。
    在该技术方案中,优选地,步骤102具体包括:在Zookeeper中为服 务确定指定路径;在确定的指定路径上为服务建立至少一个节点。
    在该技术方案中,在服务器启动后,搭建Zookeeper集群,并可以在 Zookeeper的指定路径为客户端建立可访问的节点。其中,每个服务建立 3个java工程:core(接口定义包)、server(服务端包)、client(客户 端包),core存放所有接口和公用bean,server为这个服务的model、 dao、cache、service核心实现层,client为该服务的对外暴露接口,以及 Server和Client基于socket(套接字)进行通信,Server启动后在 Zookeeper指定路径建立临时节点,其value(关键字)为该服务所在的机 器的网络协议。
    在该技术方案中,优选地,在步骤102之后,还包括:将客户端的网 络协议注册到指定路径上的网络协议列表中,并将注册结果保存至客户端 的缓存列表,以供客户端通过缓存列表访问节点。
    在该技术方案中,Client对外提供该服务接口,需要调用该服务的系 统用项目管理工具,如maven,将该client依赖进来,web(网页)容器 启动时候会从特定路径读取已注册服务网络协议列表,将结果放到缓存列 表,以便客户端通过缓存列表访问节点。
    在该技术方案中,优选地,步骤104具体包括:对至少一个节点进行 绑定监听;根据监听结果,确定节点的工作状态,其中,节点的工作状态 包括正常连接状态或连接故障状态。
    在该技术方案中,利用预定的监听机制对节点绑定监听,如果监听值 发生变化,说明节点的工作状态发生变化,则更新缓存列表,以保证服务 的可用性。
    在该技术方案中,优选地,步骤106具体包括:确定至少一个节点中 是否有节点处于连接故障状态;当确定至少一个节点中的任一节点处于连 接故障状态时,为客户端移除任一节点;在移除任一节点后,更新客户端 的缓存列表,以使客户端访问至少一个节点中的任一节点以外的其他节 点。
    在该技术方案中,当节点发生故障时,可以及时摘除该节点,以使客 户端通过其他节点访问服务器,另外,如果节点由于网络不稳等因素导致 故障或被摘除,可以立即再次注册该节点。
    图2示出了根据本发明的一个实施例的基于Zookeeper的节点配置系 统的框图。
    如图2所示,根据本发明的一个实施例的基于Zookeeper的节点配置 系统200:节点建立单元202,当检测到来自客户端的对服务的运行请求 时,为服务在Zookeeper中建立至少一个节点;节点工作状态检测单元 204,启动任一线程对至少一个节点的工作状态进行检测;处理单元 206,根据检测结果,对至少一个节点进行处理。
    在该技术方案中,可以在客户端使用服务的过程中对客户端访问的节 点的工作状态进行检测,并判断检测到的该节点的工作状态是否正常,以 便在节点处于故障状态时,及时告知客户端,并为客户端移除该节点,从 而保证客户端的服务质量,实现软负载均衡和高可用性,避免因某一节点 中断而导致服务不可用。
    在该技术方案中,优选地,节点建立单元202具体用于:在 Zookeeper中为服务确定指定路径,并在确定的指定路径上为服务建立至 少一个节点。
    在该技术方案中,在服务器启动后,搭建Zookeeper集群,并可以在 Zookeeper的指定路径为客户端建立可访问的节点。其中,每个服务建立 3个java工程:core(接口定义包)、server(服务端包)、client(客户 端包),core存放所有接口和公用bean,server为这个服务的model、 dao、cache、service核心实现层,client为该服务的对外暴露接口,以及 Server和Client基于socket(套接字)进行通信,Server启动后在 Zookeeper指定路径建立临时节点,其value(关键字)为该服务所在的机 器的网络协议。
    在该技术方案中,优选地,还包括:注册单元208,在为服务在 Zookeeper中建立至少一个节点之后,将客户端的网络协议注册到指定路 径上的网络协议列表中;保存单元210,将注册结果保存至客户端的缓存 列表,以供客户端通过缓存列表访问节点。
    在该技术方案中,Client对外提供该服务接口,需要调用该服务的系 统用项目管理工具,如maven,将该client依赖进来,web(网页)容器 启动时候会从特定路径读取已注册服务网络协议列表,将结果放到缓存列 表,以便客户端通过缓存列表访问节点。
    在该技术方案中,优选地,节点工作状态检测单元204包括:监听单 元2042,对至少一个节点进行绑定监听;以及节点工作状态检测单元204 具体用于:根据监听结果,确定节点的工作状态,其中,节点的工作状态 包括正常通信状态、故障状态或断开状态。
    在该技术方案中,利用预定的监听机制对节点绑定监听,如果监听值 发生变化,说明节点的工作状态发生变化,则更新缓存列表,以保证服务 的可用性。
    在该技术方案中,优选地,处理单元206包括:确定单元2062,确 定至少一个节点中是否有节点处于连接故障状态;节点移除单元2064, 当确定至少一个节点中的任一节点处于连接故障状态时,为客户端移除任 一节点;更新单元2066,在移除任一节点后,更新客户端的缓存列表, 以使客户端访问至少一个节点中的任一节点以外的其他节点。
    在该技术方案中,当节点发生故障时,可以及时摘除该节点,以使客 户端通过其他节点访问服务器,另外,如果节点由于网络不稳等因素导致 故障或被摘除,可以立即再次注册该节点。
    图3示出了根据本发明的一个实施例的进行节点配置的示意图。
    如图3所示,在进行节点配置的过程中,首先要搭建Zookeeper集 群,为每个服务建立3个java工程:core、server、client,其中,core存 放所有接口和公用bean,server为这个服务model、dao、cache、service 核心实现层,client为该服务的对外暴露接口,server和client基于socket 进行通信。
    server启动后可在Zookeeper指定path(路径)建立临时节点,value 为该服务所在的机器IP(网络协议),同时启动一个线程扫描Zookeeper 中该节点的状态,如果节点由于网络不稳等因素导致被摘除,需要立即注 册该节点。
    client对外提供该服务接口,需要调用该服务的系统,用maven将该 client依赖进来,web容器启动时候会从特定path读取已注册服务IP列 表,将结果放到jvm列表,同时利用watcher(监听)机制对该节点绑定 监听,如果检测值发生变化,则更新jvm列表。
    另外,在本技术方案中,还使用了重试机制,具体来讲,client向 server发一个请求,根据当前时间戳和服务节点数取摸,可以定位到具体 服务执行请求,如果此次请求失败,比如发生网络瞬断等状况,client会 将时间戳加1,并再次执行请求,直至成功为止。
    其中,负载均衡指的是对负载或流量分摊,不至于把一台机器超载导 致服务终断或不可用,多台机器经常组成一个集群,共同分担压力。高可 用性就是为了解决某节点故障的问题,当集群中的某节点出问题后,调用 时方能及时感知server端节点发生了变化,将问题节点移除。节点动态注 册指的是在server启动后,获取当前主机IP,基于applicationcontext.xml 动态实例化service对应实现Bean Factory Aware接口bean,并在 Zookeeper注册该节点。
    在该技术方案中,应用了Thrift框架和Zookeeper技术,基于socket 进行通信传输,并使用高密度二进制协议。另外,还提供了可扩展且跨语 言的服务的开发,结合了功能强大的软件堆栈和代码生成引擎,以构建在 多语言间无缝结合的服务,使用非阻塞NonblockingServer方式进行高效 服务处理。
    在该技术方案中,使模块化开发方便地以组件方式为其他系统提供服 务,并支持横向动态扩展服务节点,实现了server集群的高可用和坏节点 的自动摘除。
    在该技术方案中,server端log4j支持热配置,可根据需要修改log打 印配置,而在客户端请求失败时可以自动重试机制直至成功。本发明已经 成功应用于搜狐博客、搜狐视频、搜狐passport、畅捷通工作圈。
    以上结合附图详细说明了本发明的技术方案,通过本发明的技术方 案,可以在节点处于故障状态时,及时告知客户端,并为客户端移除该节 点,从而保证客户端的服务质量,实现软负载均衡和高可用性,避免因某 一节点中断而导致服务不可用。
    以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于 本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。

    关 键  词:
    基于 ZOOKEEPER 节点 配置 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于ZOOKEEPER的节点配置方法和基于ZOOKEEPER的节点配置系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4073830.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1