CN112162868A - 应用于集群处理的数据通信方法、装置及存储介质 - Google Patents
应用于集群处理的数据通信方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112162868A CN112162868A CN202010886007.3A CN202010886007A CN112162868A CN 112162868 A CN112162868 A CN 112162868A CN 202010886007 A CN202010886007 A CN 202010886007A CN 112162868 A CN112162868 A CN 112162868A
- Authority
- CN
- China
- Prior art keywords
- service host
- data
- module
- target service
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明公开了应用于集群处理的数据通信方法,数据通信方法应用于通信组件,通信组件包括Redis服务模块、ActiveMQ模块和Zookeeper模块;通过通信组件中的Zookeeper模块、ActiveMQ模块可实现源服务主机与目标服务主机之间的建立连接,然后通过ActiveMQ模块创建的数据发送消息队列和数据接收消息队列以及Redis服务模块创建的接收数据的通道实现数据通信,实现了集群处理系统中数据的及时通信,解决了现有技术中的集群处理系统中数据处理存在较大延迟等问题。本发明还提供了应用于集群处理的数据通信装置及存储介质。
Description
技术领域
本发明涉及集群处理系统的消息中间件,尤其涉及应用于集群处理的数据通信方法、装置及存储介质。
背景技术
一般来说,在集群数据处理系统中,一般是通过消息中间件来实现数据的通信。但是,现有市面上存在的消息中间件,一般是通过对所有设备的消息进行集中处理,然后将处理后的消息派发给各个客户端。这种消息中间件的处理方式优点在于集中处理、易于管理,但是其数据处理存在明显的延迟。特别是在复杂网络环境数据不好交互,处理数据的延迟就更明显,比如数据交换间的设备存在防火墙、局域网部分设备只能互通而无法与其他设备通讯的情况下时,数据延迟很严重。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供应用于集群处理的数据通信方法,其能够解决现有技术中集群处理系统通过消息中间进行数据处理时存在较大延迟等问题。
本发明的目的之二在于提供应用于集群处理的数据通信装置,其能够解决现有技术中集群处理系统通过消息中间进行数据处理时存在较大延迟等问题。
本发明的目的之三在于提供一种存储介质,其能够解决现有技术中集群处理系统通过消息中间进行数据处理时存在较大延迟等问题。
本发明的目的之一采用如下技术方案实现:
应用于集群处理的数据通信方法,所述数据通信方法应用于通信组件,所述通信组件包括Redis服务模块、ActiveMQ模块和Zookeeper模块;其中,Zookeeper模块用于注册登记每个服务主机的登记信息;ActiveMQ模块用于创建数据发送消息队列和数据接收消息队列;其中,数据发送消息队列、数据接收消息队列分别用于存储发送的数据和接收的数据;Redis服务模块用于创建数据接收的通道;所述数据通信方法包括:
注册步骤:当通信组件启动时,根据系统配置信息将每个服务主机的登记信息注册登记到Zookeeper模块中;所述登记信息包括服务主机的本机IP信息、服务名称和服务端口;
创建队列步骤:根据源服务主机的登记信息得出源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建源服务主机的数据发送消息队列和数据接收队列,用于存储源服务主机发送的数据以及接收的数据;
服务注册步骤:将所述源服务主机的服务名称登记注册到Redis服务模块中,并根据根据Redis服务模块以及所述源服务主机的服务端口创建数据接收的通道;
判断步骤:通过Zookeeper模块查询目标服务主机是否存在,若存在,则执行连接建立步骤;
请求步骤:根据目标服务主机的登记信息通过ActiveMQ向目标服务主机发送请求建立连接的通知;
连接步骤:当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接;
数据通信步骤:将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机;通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
进一步地,所述判断步骤包括:通过查询目标服务主机的服务名称是否注册登记到Zookeeper模块中判断目标服务主机是否存在。
进一步地,所述连接步骤之后还包括:
断线步骤:当所述目标服务主机断线时,通过Zookeeper模块选择源服务主机继续等待所述目标服务主机的连接或断开源服务主机与目标服务主机之间的连接;
检测步骤:当选择继续等待所述目标服务主机的连接时,定时检测Zoopeeker模块中各个服务主机的状态进而判断所述目标服务主机是否上线,若是,则执行建立连接步骤;
重新连接步骤:建立源服务主机与目标服务主机之间的连接,实现源服务主机与目标服务主机之间的数据通信。
进一步地,所述重新连接步骤还包括:
当源服务主机与目标服务主机之间的TCP连接未断开时,则源服务主机与目标服务主机通过该TCP连接进行数据通信;
当源服务主机与目标服务主机之间的TCP连接断开时,通过ActiveMQ向所述目标服务主机发送新的请求建立连接的通知,并当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立一条新的TCP连接,实现源服务主机与目标服务主机之间的数据通信。
进一步地,所述检测步骤包括:根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
本发明的目的之二采用如下技术方案实现:
应用于集群处理的数据通信装置,包括存储器和处理器,所述存储器上存储有可在处理器上运行的数据通信程序,所述数据通信程序为计算机程序,所述处理器执行所述数据通信程序时实现以下步骤:
注册步骤:当通信组件启动时,根据系统配置信息将每个服务主机的登记信息注册登记到ZooKeeper模块中;所述登记信息包括服务主机的本机IP信息、服务名称和服务端口;其中,所述通信组件包括Redis服务模块、ActiveMQ模块和Zookeeper模块;Zookeeper模块用于注册登记每个服务主机的登记信息;ActiveMQ模块用于创建数据发送消息队列和数据接收消息队列;其中,数据发送消息队列、数据接收消息队列分别用于存储发送的数据和接收的数据;Redis服务模块用于创建数据接收的通道;
创建队列步骤:根据源服务主机的登记信息得出源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建源服务主机的数据发送消息队列和数据接收队列,用于存储源服务主机发送的数据以及接收的数据;
服务注册步骤:将所述源服务主机的服务名称登记注册到Redis服务模块中,并根据Redis服务模块以及所述源服务主机的服务端口创建数据接收的通道;
判断步骤:通过Zookeeper模块查询目标服务主机是否存在,若存在,则执行连接建立步骤;
请求步骤:根据目标服务主机的登记信息通过ActiveMQ向目标服务主机发送请求建立连接的通知;
连接步骤:当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接;
数据通信步骤:将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机;通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
进一步地,所述判断步骤包括:通过查询目标服务主机的服务名称是否注册登记到Zookeeper模块中判断目标服务主机是否存在。
进一步地,所述连接步骤之后还包括:
断线步骤:当所述目标服务主机断线时,通过Zookeeper模块选择源服务主机继续等待所述目标服务主机的连接或断开源服务主机与目标服务主机之间的连接;
检测步骤:当选择继续等待所述目标服务主机的连接时,定时检测Zookeeper模块中各个服务主机的状态进而判断所述目标服务主机是否上线,若是,则执行建立连接步骤;
重新连接步骤:建立源服务主机与目标服务主机之间的连接,实现源服务主机与目标服务主机之间的数据通信。
进一步地,所述重新连接步骤还包括:
当源服务主机与目标服务主机之间的TCP连接未断开时,则源服务主机与目标服务主机通过该TCP连接进行数据通信;
当源服务主机与目标服务主机之间的TCP连接断开时,通过ActiveMQ向所述目标服务主机发送新的请求建立连接的通知,并当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立一条新的TCP连接,实现源服务主机与目标服务主机之间的数据通信;
其中,所述检测步骤包括:根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
本发明的目的之三采用如下技术方案实现:
一种存储介质,所述存储介质为计算机可读存储介质,其上存储有数据通信程序,所述数据通信程序为计算机程序,所述数据通信程序被处理器执行时实现如本发明目的之一采用的应用于集群处理的数据通信方法的步骤。
相比现有技术,本发明的有益效果在于:
本发明通过对集群处理系统提供了一种通信组件,通过将集群处理系统中的每个服务主机均注册登记到通信组件中,这样,当两个服务主机之间进行通信时,通过通信组件建立源服务主机与目标服务主机之间连接,实现数据的通信;通过本发明可及时将源服务主机与目标服务主机之间的直接数据交互,解决了现有技术中数据处理的及时性,解决了现有技术中由于数据集中处理导致数据处理存在较大延迟等问题。
附图说明
图1为本发明提供的通信组件与服务主机的连接示意图;
图2为本发明提供的应用于集群处理的数据通信方法流程图之一;
图3为本发明提供的应用于集群处理的数据通信方法流程图之二;
图4为本发明提供的应用于集群处理的数据通信模块图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例一
为了解决现有技术中消息中间件存在数据延迟的问题,本发明提供了一种通信组件,应用于现有的集群处理系统,将现有的数据集群处理修改为单节点管理,通过每个节点去管理与自身相关的其他节点,从而使得系统通过多个节点组成通信组件的架构,进而实现数据的处理,可大大缩短数据的延迟。
其中,本发明中的节点,可以理解成主机上运行的单个进程。例如,在计算某个服务B时,此时,计算服务B的一个进程就记为一个业务节点,就需要原始数据A的业务节点的数据,则既可以通过计算服务B的业务节点来主动去接收原始数据A的业务节点的信息,也即是通过计算服务B的业务节点去管理与其相关的原数数据A的业务节点的信息。一般来说,如图1所示,本发明的通信组件包括以下模块:Redis服务模块、ActiveMQ模块、protobuf模块、boost.asio模块和Zookeeper模块。
其中,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
ActiveMQ是Apache出品的,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现。
Protobuf全称是Google Protocol Buffer,是一种高效轻便的结构化数据存储方式,可用于(数据)通信协议、数据存储等。另外,Protobuf也可以理解为结构化数据的序列化方法,可简单类比为XML(这里主要是指在数据通信和数据存储这些应用场景中序列化方面的类比,但个人认为XML作为一种扩展标记语言和Protobuf还是有着本质区别的),其具有以下特点:Protobuf支持Java、C++、Python等多种语言,同时可支持多个平台;比XML更小(3~10倍)、更快(20~100倍)、更为简单以及扩展性、兼容性好。其中,Protobuf只是节点互相通讯时的消息的封装。
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。Zookeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper包含一个简单的原语集,提供Java和C的接口。
boost.asio模块,用于创建TCP通讯的C++通讯库。
如图2所示,本发明提供了一优选的实施例,应用于集群处理的数据通信方法,应用于通信组件,该通信组件,用于实现交互设备之间的通信。优选地,本实施例中的交互设备以服务主机为例来说明。
所述数据通信方法包括以下步骤:
步骤S1、根据系统配置信息将系统中的每个服务主机的登记信息注册登记到Zookeeper模块中。其中,系统配置信息是指该主机启动时的系统参数配置,比如包括程序启动时自定义的节点名称。
其中,服务主机的登记信息包括服务主机的本机IP信息、服务端口以及服务名称等信息。只有在Zookeeper模块中登记注册的服务主机之间才能通过本发明提供的通信组件进行数据通信。
也即是说,当通信组件启动运行后,根据系统配置信息需要将所有的服务主机登记注册到通信组件的Zookeeper模块中,便于后续的数据通信。
步骤S2、根据源服务主机的登记信息来获取源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建数据发送消息队列和数据接收消息队列。
其中,数据发送消息队列用于存储源服务主机发送的数据,数据接收消息队列用于存储源服务主机接收的数据。
步骤S3、通过连接Redis服务模块并将源服务主机的服务名称登记注册到Redis服务模块中,从而根据源服务主机的服务端口,创建数据接收的通道。
步骤S4、通过Zookeeper模块查询目标服务主机是否存在,并当目标服务主机存在时,执行步骤S5。
当源服务主机需要与目标服务主机通信时,首先要查询目标服务主机是否在Zookeeper模块中注册。只有二者同时在Zookeeper模块中注册时,才能通过该通信组件进行数据通信。
优选地,通过Zookeeper模块查询目标服务主机是否存在时可通过查询目标服务主机的服务名称是否注册登记在Zookeeper模块中,若是,则说明目标服务主机存在于Zookeeper模块中。
步骤S5、根据目标服务主机的登记信息通过ActiveMQ模块向目标服务主机发送请求建立连接的通知。
当目标服务主机接收到请求建立连接的通知后,会向系统返回一确认通知。
步骤S6、当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接,实现源服务主机与目标服务主机之间的数据通信。
其中,在数据通信时:
将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机。
通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
进一步地,如图3所示,所述通信方法还包括:
步骤S7、当目标服务主机断线时,根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
步骤S8、若选择继续等待该目标服务主机的连接,则系统会定时检测Zookeeper中各个服务主机的状态进而判断所述目标服务主机是否上线。
步骤S9、当检测所述目标服务主机的登记信息后,执行步骤S5、步骤S6从而使得源服务主机与目标服务主机之间建立一条TCP连接,实现源服务主机与目标服务主机之间的数据通信。
优选地,当原有的TCP连接时,则继续使用原有的TCP连接;否则,重新建立一条新的TCP连接,可保证资源的有效利用。
通过本发明可实现不同的交互设备之间的数据通信,可应用于各种环境中,比如可应用于实现存在上下级或平行节点的交互设备中,比如多台需要交互数据的设备间存在防火墙等设备。同样地,本发明还可以解决部门场景需要非常小延时的情况,比如在需要两个节点交互的情况下,可直接通过在两个几点之间建立一条通道,数据可借助该通道直接从初始节点发送到目标节点,减少数据需要中转带来的数据延时。
本发明可简化广域网或局域网多机之间的通讯,支持自动发信目标主机、断线重连、消息重发等机制,弱化业务层对网络通讯的要求。
实施例二
本发明提供了一种应用于集群处理的数据通信装置。如图4所示,本发明一实施例提供的应用于集群处理的数据通信装置的内部结构示意图。
在本实施例中,应用于集群处理的数据通信装置可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该应用于集群处理的数据通信装置至少包括:处理器12、通信总线13、网络接口14以及存储器11。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是应用于集群处理的数据通信装置的内部存储单元,例如该应用于集群处理的数据通信装置的硬盘。存储器11在另一些实施例中也可以是应用于集群处理的数据通信装置的外部存储设备,例如应用于集群处理的数据通信装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括应用于集群处理的数据通信装置的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于应用于集群处理的数据通信装置的应用软件及各类数据,例如数据通信程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据通信程序等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该应用于集群处理的数据通信装置与其他电子设备之间建立通信连接。
可选地,该应用于集群处理的数据通信装置还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在应用于集群处理的数据通信装置中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-14以及数据通信程序的应用于集群处理的数据通信装置,本领域技术人员可以理解的是,图4示出的结构并不构成对应用于集群处理的数据通信装置的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图4所示的应用于集群处理的数据通信装置实施例中,存储器11中存储有数据通信程序;处理器12执行存储器11中存储的数据通信程序时实现如下步骤:
注册步骤:当通信组件启动时,根据系统配置信息将每个服务主机的登记信息注册登记到Zookeeper模块中;所述登记信息包括服务主机的本机IP信息、服务名称和服务端口;
创建队列步骤:根据源服务主机的登记信息得出源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建源服务主机的数据发送消息队列和数据接收队列,用于存储源服务主机发送的数据以及接收的数据;
服务注册步骤:将所述源服务主机的服务名称登记注册到Redis服务模块中,并根据Redis服务模块以及所述源服务主机的服务端口创建数据接收的通道;
判断步骤:通过Zookeeper模块查询目标服务主机是否存在,若存在,则执行连接建立步骤;
请求步骤:根据目标服务主机的登记信息通过ActiveMQ向目标服务主机发送请求建立连接的通知;
连接步骤:当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接;
数据通信步骤:将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机;通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
进一步地,所述判断步骤包括:通过查询目标服务主机的服务名称是否注册登记到Zookeeper模块中判断目标服务主机是否存在。
进一步地,所述连接步骤之后还包括:
断线步骤:当所述目标服务主机断线时,通过Zookeeper模块选择源服务主机继续等待所述目标服务主机的连接或断开源服务主机与目标服务主机之间的连接;
检测步骤:当选择继续等待所述目标服务主机的连接时,定时检测Zookeeper模块中各个服务主机的状态进而判断所述目标服务主机是否上线,若是,则执行建立连接步骤;
重新连接步骤:建立源服务主机与目标服务主机之间的连接,实现源服务主机与目标服务主机之间的数据通信。
进一步地,所述重新连接步骤还包括:
当源服务主机与目标服务主机之间的TCP连接未断开时,则源服务主机与目标服务主机通过该TCP连接进行数据通信;
当源服务主机与目标服务主机之间的TCP连接断开时,通过ActiveMQ向所述目标服务主机发送新的请求建立连接的通知,并当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立一条新的TCP连接,实现源服务主机与目标服务主机之间的数据通信;
进一步地,所述检测步骤包括:根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
实施例三
一种存储介质,所述存储介质为计算机可读存储介质,其上存储有数据通信程序,所述数据通信程序为计算机程序,所述数据通信程序被处理器执行时实现如以下步骤:
注册步骤:当通信组件启动时,根据系统配置信息将每个服务主机的登记信息注册登记到Zookeeper模块中;所述登记信息包括服务主机的本机IP信息、服务名称和服务端口;
创建队列步骤:根据源服务主机的登记信息得出源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建源服务主机的数据发送消息队列和数据接收队列,用于存储源服务主机发送的数据以及接收的数据;
服务注册步骤:将所述源服务主机的服务名称登记注册到Redis服务模块中,并根据Redis服务模块以及所述源服务主机的服务端口创建数据接收的通道;
判断步骤:通过Zookeeper模块查询目标服务主机是否存在,若存在,则执行连接建立步骤;
请求步骤:根据目标服务主机的登记信息通过ActiveMQ模块向目标服务主机发送请求建立连接的通知;
连接步骤:当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接;
数据通信步骤:将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机;通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
进一步地,所述判断步骤包括:通过查询目标服务主机的服务名称是否注册登记到Zookeeper模块中判断目标服务主机是否存在。
进一步地,所述连接步骤之后还包括:
断线步骤:当所述目标服务主机断线时,通过Zookeeper模块选择源服务主机继续等待所述目标服务主机的连接或断开源服务主机与目标服务主机之间的连接;
检测步骤:当选择继续等待所述目标服务主机的连接时,定时检测Zookeeper模块中各个服务主机的状态进而判断所述目标服务主机是否上线,若是,则执行建立连接步骤;
重新连接步骤:建立源服务主机与目标服务主机之间的连接,实现源服务主机与目标服务主机之间的数据通信。
进一步地,所述重新连接步骤还包括:
当源服务主机与目标服务主机之间的TCP连接未断开时,则源服务主机与目标服务主机通过该TCP连接进行数据通信;
当源服务主机与目标服务主机之间的TCP连接断开时,通过ActiveMQ模块向所述目标服务主机发送新的请求建立连接的通知,并当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立一条新的TCP连接,实现源服务主机与目标服务主机之间的数据通信;
进一步地,所述检测步骤包括:根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (10)
1.应用于集群处理的数据通信方法,其特征在于,所述数据通信方法应用于通信组件,所述通信组件包括Redis服务模块、ActiveMQ模块和Zookeeper模块;其中,Zookeeper模块用于注册登记每个服务主机的登记信息;ActiveMQ模块用于创建数据发送消息队列和数据接收消息队列;数据发送消息队列、数据接收消息队列分别用于存储发送的数据和接收的数据;Redis服务模块用于创建数据接收的通道;所述数据通信方法包括:
注册步骤:当通信组件启动时,根据系统配置信息将每个服务主机的登记信息注册登记到Zookeeper模块中;所述登记信息包括服务主机的本机IP信息、服务名称和服务端口;
创建队列步骤:根据源服务主机的登记信息得出源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建源服务主机的数据发送消息队列和数据接收队列,用于存储源服务主机发送的数据以及接收的数据;
服务注册步骤:将所述源服务主机的服务名称登记注册到Redis服务模块中,并根据Redis服务模块以及所述源服务主机的服务端口创建数据接收的通道;
判断步骤:通过Zookeeper模块查询目标服务主机是否存在,若存在,则执行连接建立步骤;
请求步骤:根据目标服务主机的登记信息通过ActiveMQ模块向目标服务主机发送请求建立连接的通知;
连接步骤:当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接;
数据通信步骤:将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机;通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
2.根据权利要求1所述应用于集群处理的数据通信方法,其特征在于,所述判断步骤包括:通过查询目标服务主机的服务名称是否注册登记到Zookeeper模块中判断目标服务主机是否存在。
3.根据权利要求1所述应用于集群处理的数据通信方法,其特征在于,所述连接步骤之后还包括:
断线步骤:当所述目标服务主机断线时,通过Zookeeper模块选择源服务主机继续等待所述目标服务主机的连接或断开源服务主机与目标服务主机之间的连接;
检测步骤:当选择继续等待所述目标服务主机的连接时,定时检测Zookeeper模块中各个服务主机的状态进而判断所述目标服务主机是否上线,若是,则执行建立连接步骤;
重新连接步骤:建立源服务主机与目标服务主机之间的连接,实现源服务主机与目标服务主机之间的数据通信。
4.根据权利要求3所述应用于集群处理的数据通信方法,其特征在于,所述重新连接步骤还包括:
当源服务主机与目标服务主机之间的TCP连接未断开时,则源服务主机与目标服务主机通过该TCP连接进行数据通信;
当源服务主机与目标服务主机之间的TCP连接断开时,通过ActiveMQ向所述目标服务主机发送新的请求建立连接的通知,并当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立一条新的TCP连接,实现源服务主机与目标服务主机之间的数据通信。
5.根据权利要求3所述应用于集群处理的数据通信方法,其特征在于,所述检测步骤包括:根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
6.应用于集群处理的数据通信装置,包括存储器和处理器,所述存储器上存储有可在处理器上运行的数据通信程序,所述数据通信程序为计算机程序,其特征在于:所述处理器执行所述数据通信程序时实现以下步骤:
注册步骤:当通信组件启动时,根据系统配置信息将每个服务主机的登记信息注册登记到Zookeeper模块中;所述登记信息包括服务主机的本机IP信息、服务名称和服务端口;其中,所述通信组件包括Redis服务模块、ActiveMQ模块和Zookeeper模块;Zookeeper模块用于注册登记每个服务主机的登记信息;ActiveMQ模块用于创建数据发送消息队列和数据接收消息队列;其中,数据发送消息队列、数据接收消息队列分别用于存储发送的数据和接收的数据;Redis服务模块用于创建数据接收的通道;
创建队列步骤:根据源服务主机的登记信息得出源服务主机的服务名称,并将源服务主机登记注册到ActiveMQ模块中,从而创建源服务主机的数据发送消息队列和数据接收队列,用于存储源服务主机发送的数据以及接收的数据;
服务注册步骤:将所述源服务主机的服务名称登记注册到Redis服务模块中,并根据Redis服务模块以及所述源服务主机的服务端口创建数据接收的通道;
判断步骤:通过Zookeeper模块查询目标服务主机是否存在,若存在,则执行连接建立步骤;
请求步骤:根据目标服务主机的登记信息通过ActiveMQ模块向目标服务主机发送请求建立连接的通知;
连接步骤:当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立TCP连接;
数据通信步骤:将源服务主机发送的数据存储数据发送消息队列中,以便通过所述TCP连接将数据发送到目标服务主机;通过TCP连接,将源服务主机接收的数据存储数据接收消息队列中,并通过对应的数据接收的通道发送给源服务主机。
7.根据权利要求6所述应用于集群处理的数据通信装置,其特征在于,所述判断步骤包括:通过查询目标服务主机的服务名称是否注册登记到Zookeeper模块中判断目标服务主机是否存在。
8.根据权利要求6所述应用于集群处理的数据通信装置,其特征在于,所述连接步骤之后还包括:
断线步骤:当所述目标服务主机断线时,通过Zookeeper模块选择源服务主机继续等待所述目标服务主机的连接或断开源服务主机与目标服务主机之间的连接;
检测步骤:当选择继续等待所述目标服务主机的连接时,定时检测Zookeeper模块中各个服务主机的状态进而判断所述目标服务主机是否上线,若是,则执行建立连接步骤;
重新连接步骤:建立源服务主机与目标服务主机之间的连接,实现源服务主机与目标服务主机之间的数据通信。
9.根据权利要求8所述应用于集群处理的数据通信装置,其特征在于,所述重新连接步骤还包括:
当源服务主机与目标服务主机之间的TCP连接未断开时,则源服务主机与目标服务主机通过该TCP连接进行数据通信;
当源服务主机与目标服务主机之间的TCP连接断开时,通过ActiveMQ模块向所述目标服务主机发送新的请求建立连接的通知,并当系统接收到目标服务主机返回的确认通知后,在源服务主机与目标服务主机之间建立一条新的TCP连接,实现源服务主机与目标服务主机之间的数据通信;
其中,所述检测步骤包括:根据Zookeeper模块中的服务主机的变化以及TCP连接的断开来判断是否继续等待该目标服务主机的连接或断开服务连接。
10.一种存储介质,所述存储介质为计算机可读存储介质,其上存储有数据通信程序,所述数据通信程序为计算机程序,其特征在于:所述数据通信程序被处理器执行时实现如权利要求1-5中共任一项所述应用于集群处理的数据通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010886007.3A CN112162868B (zh) | 2020-08-28 | 2020-08-28 | 应用于集群处理的数据通信方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010886007.3A CN112162868B (zh) | 2020-08-28 | 2020-08-28 | 应用于集群处理的数据通信方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112162868A true CN112162868A (zh) | 2021-01-01 |
CN112162868B CN112162868B (zh) | 2022-05-13 |
Family
ID=73860335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010886007.3A Active CN112162868B (zh) | 2020-08-28 | 2020-08-28 | 应用于集群处理的数据通信方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162868B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873523A (zh) * | 2012-12-14 | 2014-06-18 | 北京东方通科技股份有限公司 | 客户端集群访问方法及装置 |
US20160219089A1 (en) * | 2015-01-23 | 2016-07-28 | Ebay Inc. | Systems and methods for messaging and processing high volume data over networks |
US20170083396A1 (en) * | 2015-09-18 | 2017-03-23 | Salesforce.Com, Inc. | Recovery strategy for a stream processing system |
CN107092533A (zh) * | 2017-03-29 | 2017-08-25 | 弘成科技发展有限公司 | 基于ActiveMQ+Redis的同步消息队列 |
CN109150558A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 管理消息队列节点的方法、装置和系统 |
CN109634739A (zh) * | 2018-10-31 | 2019-04-16 | 同盾控股有限公司 | 一种数据传输方法、装置 |
-
2020
- 2020-08-28 CN CN202010886007.3A patent/CN112162868B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873523A (zh) * | 2012-12-14 | 2014-06-18 | 北京东方通科技股份有限公司 | 客户端集群访问方法及装置 |
US20160219089A1 (en) * | 2015-01-23 | 2016-07-28 | Ebay Inc. | Systems and methods for messaging and processing high volume data over networks |
US20170083396A1 (en) * | 2015-09-18 | 2017-03-23 | Salesforce.Com, Inc. | Recovery strategy for a stream processing system |
CN107092533A (zh) * | 2017-03-29 | 2017-08-25 | 弘成科技发展有限公司 | 基于ActiveMQ+Redis的同步消息队列 |
CN109150558A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 管理消息队列节点的方法、装置和系统 |
CN109634739A (zh) * | 2018-10-31 | 2019-04-16 | 同盾控股有限公司 | 一种数据传输方法、装置 |
Non-Patent Citations (2)
Title |
---|
罗俊,等;: "实时大数据挖掘系统的设计与实现", 《计算机应用与软件》 * |
郭志伟,: "面向高并发的分布式购物平台设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112162868B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100359366B1 (ko) | 자각-개시 푸시를 제공하기 위한 방법 및 장치 | |
CN110311983B (zh) | 服务请求的处理方法、装置、系统、电子设备及存储介质 | |
CN110262902B (zh) | 信息处理方法及系统、介质和计算设备 | |
CN108833251B (zh) | 用于控制网络互联的方法和装置 | |
US20190173960A1 (en) | Method, device and computer program product for protocol selection | |
CN109995801B (zh) | 一种消息传输方法和装置 | |
CN109150558B (zh) | 管理消息队列节点的方法、装置和系统 | |
CN111427701A (zh) | 一种工作流引擎系统和业务处理方法 | |
CN111131505A (zh) | 基于p2p网络的数据传输方法、设备、系统、装置及介质 | |
JP2018537777A (ja) | モノのインターネット情報システム | |
WO2023217187A1 (zh) | 服务响应方法、装置、设备及存储介质 | |
CN112630557A (zh) | 设备状态检测方法、装置、设备及介质 | |
CN110351107B (zh) | 配置管理方法及装置 | |
CN110798495B (zh) | 用于在集群架构模式下端到端的消息推送的方法和服务器 | |
CN112162868B (zh) | 应用于集群处理的数据通信方法、装置及存储介质 | |
CN112152879A (zh) | 网络质量确定方法、装置、电子设备和可读存储介质 | |
CN114125024B (zh) | 音频传输方法、电子设备及可读存储介质 | |
CN111970358B (zh) | 去中心化云计算平台及其服务部署、访问方法及组件 | |
CN112905273A (zh) | 一种服务调用方法和装置 | |
WO2020238057A1 (zh) | 基于Redis的mqtt集群的监控方法、装置及存储介质 | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
US10516767B2 (en) | Unifying realtime and static data for presenting over a web service | |
CN111193656A (zh) | 一种消息推送方法和装置 | |
CN110099121A (zh) | 公有云服务处理方法、计算机装置及存储介质 | |
CN117527880B (zh) | 消息管理方法、装置、电子设备及计算机可读取存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |