基于第三方数据库实现业务节点通讯地址发现的方法技术

技术编号:16219641 阅读:19 留言:0更新日期:2017-09-16 02:04
本发明专利技术涉及一种基于第三方数据库实现业务节点通讯地址发现的方法,包括链接建立处理操作和保活状态维持处理操作,所述的链接建立处理操作,包括以下步骤:(1)创建业务进程,将所有业务进程链接zookeeper的动态库,并启动zookeeper服务端;(2)启动所有业务进程;(3)所有业务进程根据预设的通讯模型,向zookeeper客户端创建不同树形的zookeeper数据库节点;(4)所述的业务进程观察对端的数据库节点;(5)在对端上线并获取对端的通讯地址之后,与对端建立tcp链接,并发送业务数据;所述的保活状态维持处理操作,具体如下:在所述的zookeeper服务端与所述的zookeeper客户端以及所有的业务进程之间进行周期性的保活检测。采用该方法,能够获取对端的通讯地址,并具有双重的保活机制,极大的提高业务进程间下线事件的判断准确率,避免由于错误的判断对端下线事件,具有广泛的应用范围。

Method for realizing communication address discovery of service node based on third party database

The invention relates to a method for realizing service node address based on the database of the third party, including the establishment of link processing operations and keep alive state to maintain the processing operation, the link establishment processing operation, which comprises the following steps: (1) to create a business process, the dynamic database of all the business process link zookeeper, and start the zookeeper server; (2) the start of all business processes; (3) all of the business process according to the preset communication model, zookeeper database node to zookeeper clients to create a different tree; (4) the business process observation database node to end; (5) after the end of the line and get to the end of the address, with the establishment of the TCP link to the end, and to send business data; keep alive the process of maintaining operation, as follows: in the zookeeper server and the zookeeper client A periodic maintenance test is performed between the client and all business processes. By this method, can get to end address, and live with double safeguard mechanism, improve business process between offline events to determine the accuracy, avoid the wrong judgment on the end of offline events, with a wide range of applications.

【技术实现步骤摘要】
基于第三方数据库实现业务节点通讯地址发现的方法
本专利技术涉及通讯
,尤其涉及通讯地址发现机制
,具体是指一种基于第三方数据库实现业务节点通讯地址发现的方法。
技术介绍
在传统的Bras(BroadbandRemoteAccessServer,宽带远程接入服务器)设备中,控制面、转发面都是专有定制化单板,单板之间都是通过机架的背板进行数据交换的。整个机架环境都是固定的、稳定的、整体的,所以单板间或者单板内的业务进程进行数据交互时,可以采用固定的逻辑地址,譬如,采用tipc作为底层通讯机制时,可以根据机架号、槽位号、cpu号、业务编号等等信息来编制固定不变的逻辑地址。这样各个业务进程启动后,可以直接向其它业务进程发送数据。但是,在vBras设备中,控制面、转发面都是普通的服务器,甚至是虚拟机或者docker(一种开源的应用容器引擎)实例。服务器、虚拟机可能是跨操作系统的,甚至服务器都部署在不同的地址位置上。那么控制面与转发面之间的业务进程需要进行数据通讯时,就无法使用固定的逻辑地址了,而需要采用物理地址进行通讯。
技术实现思路
本专利技术的目的是克服了上述现有技术的缺点,提供了一种能够基于第三方数据库实现业务节点通讯地址发现的方法。为了实现上述目的,本专利技术具有如下构成:该基于第三方数据库实现业务节点通讯地址发现的方法,包括链接建立处理操作和保活状态维持处理操作,所述的链接建立处理操作,包括以下步骤:(1)创建第一业务进程、第二业务进程和第三业务进程,将所述的第一业务进程、第二业务进程、第三业务进程链接zookeeper的动态库,并启动zookeeper服务端;(2)启动所述的第一业务进程、第二业务进程、第三业务进程,所述的第一业务进程、第二业务进程、第三业务进程分别创建对应的zookeeper客户端,各个所述的zookeeper客户端均向所述的zookeeper服务端进行注册;(3)所述的第一业务进程、第二业务进程、第三业务进程根据预设的通讯模型,向所述的zookeeper客户端创建不同树形的zookeeper数据库节点;(4)所述的第一业务进程、第二业务进程、第三业务进程分别观察所述的第一业务进程、第二业务进程、第三业务进程对应的对端业务进程的数据库节点;(5)所述的第一业务进程、第二业务进程、第三业务进程在所述的对应的对端业务进程上线并获取到所述的对应的对端业务进程的通讯地址之后,与所述的对应的对端业务进程建立tcp(TransmissionControlProtocol,传输控制协议)链接,并发送业务数据;所述的保活状态维持处理操作,具体如下:在所述的zookeeper服务端与所述的zookeeper客户端以及所述的第一业务进程、第二业务进程、第三业务进程之间进行周期性的保活检测。较佳地,所述的步骤(3)具体包括以下步骤:(3-1)所述的第一业务进程向zookeeper客户端创建数据库节点“/业务名1/server”,并向“server”节点中写入所述的第一业务进程的通讯地址;(3-2)所述的第二业务进程和所述的第三业务进程分别向zookeeper客户端创建数据库节点“/业务名1/clients/业务名2”和“/业务名1/clients/业务名3”,并向“业务名2”节点和“业务名3”节点中对应写入所述的第二业务进程和所述的第三业务进程的通讯地址。在一种更佳的实施方式中,所述的步骤(3-2)中在向对端业务进程发布通讯地址时,同时发布两类地址:unix地址和inet地址,其中,a).unix地址(便于host内节点连接);b).inet地址(便于不同host上节点连接)。在一种较佳的实施方式中,所述的第一业务进程为数据服务端、所述的第二业务进程与所述的第三业务进程为数据客户端,所述的步骤(4)具体包括以下步骤:(4-1)所述的第一业务进程创建完成数据库节点后,所述的第一业务进程观察其相关联的数据客户端所创建的数据库节点的父节点“/业务名1/clients”,判断是否存在多个客户端在线,如果是,则继续步骤(4-2);(4-2)所述的第一业务进程从数据库节点“/业务名1/clients/业务名2”和“/业务名1/clients/业务名3”中读取所述的第二业务进程和所述的第三业务进程的通讯地址;(4-3)所述的第二业务进程和所述的第三业务进程创建完成数据库节点后,判断数据库节点“/业务名1/server”是否存在,如果是,则读取所述的第一业务进程的通讯地址。在一种较佳的实施方式中,其特征在于,所述的保活状态维持处理操作具体包括维持保活状态的第三方数据库处理子过程和维持保活状态的业务进程自身处理子过程。在一种较佳的实施方式中,维持保活状态的第三方数据库处理子过程,包括以下步骤:(5-1-1)所述的zookeeper服务端判断是否存在所述的zookeeper客户端保活超时,如果是,则删除该zookeeper客户端曾经创建的数据库节点,并且通知观察该删除节点的zookeeper客户端;(5-1-2)当所述的zookeeper客户端通知所述的第一业务进程、所述的第二业务进程和所述的第三业务进程各自的观察节点的删除事件时,关闭tcp链接;(5-1-3)当所述的zookeeper客户端通知所述的第一业务进程、第二业务进程、第三业务进程各自的观察节点的添加事件时,所述的第一业务进程检查对应的对端业务进程的当前状态,所述的第二业务进程检查对应的对端业务进程的当前状态、所述的第三业务进程检查对应的对端业务进程的当前状态;在一种较佳的实施方式中,维持保活状态的业务进程自身处理子过程,包括以下步骤:(5-2-1)在所述的第一业务进程、第二业务进程、第三业务进程之间建立两条链路;(5-2-2)在所述的第一业务进程、第二业务进程、第三业务进程内部创建新的线程。在一种较佳的实施方式中,所述的步骤(5-1-3)中,所述的第一业务进程、第二业务进程、第三业务进程分别检查对应的对端业务进程的当前状态具体包括以下步骤:(5-1-3-1)如果所述的第一业务进程、第二业务进程、第三业务进程对应的对端业务进程的当前状态是下线状态,则继续步骤(5-1-3-2),否则,继续步骤(5-1-3-3);(5-1-3-2)开始上线流程;(5-1-3-3)所述的第一业务进程、第二业务进程、第三业务进程获取该观察节点中所述的对应的对端业务进程的通讯地址,并判断有无发生变化,如果发生变化,则继续步骤(5-1-3-3-1),否则,继续步骤(5-1-3-3-2);(5-1-3-3-1)所述的第一业务进程、第二业务进程、第三业务进程关闭之前所述的tcp链接,并根据新地址建立新的tcp链接,同时判断双方业务进程是否处于同一个host内,如果所述的双方业务进程处于同一个host内,则使用unix地址同时建立两个链接;如果所述的双方业务进程在不同的host,则使用inet地址同时建立两个链接;(5-1-3-3-2)所述的第一业务进程、第二业务进程、第三业务进程过滤此次所述的第一业务进程、第二业务进程、第三业务进程对应的对端业务上线事件。在一种较佳的实施方式中,在步骤(5-2-2)创建新的线程中,所述的新的线程处理保活状态的维持过程,具体包括:(5-2-2-1)保活本文档来自技高网...
基于第三方数据库实现业务节点通讯地址发现的方法

【技术保护点】
一种基于第三方数据库实现业务节点通讯地址发现的方法,其特征在于,所述的方法包括链接建立处理操作和保活状态维持处理操作,所述的链接建立处理操作,包括以下步骤:(1)创建第一业务进程、第二业务进程和第三业务进程,将所述的第一业务进程、第二业务进程、第三业务进程链接zookeeper的动态库,并启动zookeeper服务端;(2)启动所述的第一业务进程、第二业务进程、第三业务进程,所述的第一业务进程、第二业务进程、第三业务进程分别创建对应的zookeeper客户端,各个所述的zookeeper客户端均向所述的zookeeper服务端进行注册;(3)所述的第一业务进程、第二业务进程、第三业务进程根据预设的通讯模型,向所述的zookeeper客户端创建不同树形的zookeeper数据库节点;(4)所述的第一业务进程、第二业务进程、第三业务进程分别观察所述的第一业务进程、第二业务进程、第三业务进程对应的对端业务进程的数据库节点;(5)所述的第一业务进程、第二业务进程、第三业务进程在所述的对应的对端业务进程上线并获取到所述的对应的对端业务进程的通讯地址之后,与所述的对应的对端业务进程建立tcp链接,并发送业务数据;所述的保活状态维持处理操作,具体如下:在所述的zookeeper服务端与所述的zookeeper客户端以及所述的第一业务进程、第二业务进程、第三业务进程之间进行周期性的保活检测。...

【技术特征摘要】
1.一种基于第三方数据库实现业务节点通讯地址发现的方法,其特征在于,所述的方法包括链接建立处理操作和保活状态维持处理操作,所述的链接建立处理操作,包括以下步骤:(1)创建第一业务进程、第二业务进程和第三业务进程,将所述的第一业务进程、第二业务进程、第三业务进程链接zookeeper的动态库,并启动zookeeper服务端;(2)启动所述的第一业务进程、第二业务进程、第三业务进程,所述的第一业务进程、第二业务进程、第三业务进程分别创建对应的zookeeper客户端,各个所述的zookeeper客户端均向所述的zookeeper服务端进行注册;(3)所述的第一业务进程、第二业务进程、第三业务进程根据预设的通讯模型,向所述的zookeeper客户端创建不同树形的zookeeper数据库节点;(4)所述的第一业务进程、第二业务进程、第三业务进程分别观察所述的第一业务进程、第二业务进程、第三业务进程对应的对端业务进程的数据库节点;(5)所述的第一业务进程、第二业务进程、第三业务进程在所述的对应的对端业务进程上线并获取到所述的对应的对端业务进程的通讯地址之后,与所述的对应的对端业务进程建立tcp链接,并发送业务数据;所述的保活状态维持处理操作,具体如下:在所述的zookeeper服务端与所述的zookeeper客户端以及所述的第一业务进程、第二业务进程、第三业务进程之间进行周期性的保活检测。2.根据权利要求1所述的基于第三方数据库实现业务节点通讯地址发现的方法,其特征在于,所述的步骤(3)具体包括以下步骤:(3-1)所述的第一业务进程向所述的zookeeper客户端创建数据库节点“/业务名1/server”,并向“server”节点中写入所述的第一业务进程的通讯地址;(3-2)所述的第二业务进程和所述的第三业务进程分别向所述的zookeeper客户端创建数据库节点“/业务名1/clients/业务名2”和“/业务名1/clients/业务名3”,并向“业务名2”节点和“业务名3”节点中对应写入所述的第二业务进程和所述的第三业务进程的通讯地址。3.根据权利要求2所述的基于第三方数据库实现业务节点通讯地址发现的方法,其特征在于,所述的步骤(3-2)中,所述的第一业务进程、第二业务进程、第三业务进程在向所述的对应的对端业务进程写入通讯地址时,同时发布两类地址:unix地址和inet地址。4.根据权利要求1所述的基于第三方数据库实现业务节点通讯地址发现的方法,其特征在于,所述的第一业务进程为数据服务端、所述的第二业务进程与所述的第三业务进程为数据客户端,所述的步骤(4)具体包括以下步骤:(4-1)所述的第一业务进程创建完成数据库节点后,所述的第一业务进程观察其相关联的数据客户端所创建的数据库节点的父节点“/业务名1/clients”,判断是否存在多个客户端在线,如果是,则继续步骤(4-2);(4-2)所述的第一业务进程从数据库节点“/业务名1/clients/业务名2”和“/业务名1/clients/业务名3”中读取所述的第二业务进程和所述的第三业务进程的通讯地址;(4-3)所述的第二业务进程和所述的第三业务进程创建完成数据库节点后,判断数据库节点“/业务名1/server”是否存在,如果是,则读取所述的第一业务进程的通讯地址。5.根据权利要求1所述的基于第三方数据库实现业务节点通讯地址发现的方法,其特征在于,所述的保活状态维持处理操作包括维持保活状态的第三方数据库处理子过程和维持保活状态的业务进程自身处理子过程,所述的维持保活状态的第三方数据库处理子过程,...

【专利技术属性】
技术研发人员:王昆逯利军钱培专李晏
申请(专利权)人:北京赛特斯信息科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1