CN111522818B - 一种基于内存数据库的多主机间消息交互方法 - Google Patents
一种基于内存数据库的多主机间消息交互方法 Download PDFInfo
- Publication number
- CN111522818B CN111522818B CN202010328878.3A CN202010328878A CN111522818B CN 111522818 B CN111522818 B CN 111522818B CN 202010328878 A CN202010328878 A CN 202010328878A CN 111522818 B CN111522818 B CN 111522818B
- Authority
- CN
- China
- Prior art keywords
- message
- node
- host
- database
- memory database
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于内存数据库的多主机间消息交互方法,包括多个主机节点,所有主机节点均与内容数据库相连;多主机间消息交互方法包括:建立带有业务处理流程的内存数据库中间表;一主机节点将所需发送的消息和目的节点写入内存数据库中间表;所有主机节点定时轮询数据库中间表;若数据库中间表中存在发往本节点的消息或存在非本节点发出且未指定目的节点的消息,则读取消息并处理。本发明基于内存数据库实现分布式系统多主机间的消息交互,解决了分布式环境下多主机之间低速、高时延传递数据信息的难题,适用于消息体量小、数量多,有高时效、低时延要求的高性能实时业务处理系统。
Description
技术领域
本发明涉及分布式系统的主机交互技术领域,具体涉及一种基于内存数据库的多主机间消息交互方法。
背景技术
目前通信行业应用系统中多为分布式系统,用于提供处理性能和系统的健壮性,而在分布式系统当中,各主机节点之间的消息通信尤为重要,如主节点与从节点之间的业务管控、分发和负载均衡等消息交互,通常缺乏高效和稳定的通信机制。
内存数据库是一种基于内存的实现关系型数据库,支持使用SQL语言进行操作,而且访问速度是传统物理数据库的万倍以上,达到了微秒级,速度快、延迟低、符合分布式系统的主机节点间消息通信的要求。
因此,如何基于内存数据库实现多主机间的消息交互是本发明研究的目的。
发明内容
针对现有技术中存在的上述问题,本发明提供一种基于内存数据库的多主机间消息交互方法。
本发明公开了一种基于内存数据库的多主机间消息交互方法,包括多个主机节点,所有所述主机节点均与内容数据库相连;
所述多主机间消息交互方法包括:
建立带有业务处理流程的内存数据库中间表;
一所述主机节点将所需发送的消息和目的节点写入所述内存数据库中间表;
所有所述主机节点定时轮询所述数据库中间表;
若所述数据库中间表中存在发往本节点的消息或存在非本节点发出且未指定目的节点的消息,则读取消息并处理。
作为本发明的进一步改进,所述数据库中间表包括:
消息流水,所述消息流水为消息唯一标识,由源主机编号、时间戳和序列号组成;
消息内容,所述消息内容为需要传递的消息内容主体;
业务内容,所述业务内容为消息可携带的业务内容;
目的节点,所述目的节点为需要发送的消息发往的目的节点主机编号,所述主机编号为带字节编号或空白编号,所述空白编号的解码为所有节点均可处理;
消息失效时间。
作为本发明的进一步改进,所述主机节点处理消息后,自行删除已处理的消息记录。
作为本发明的进一步改进,主机节点X向主机节点Y发送消息的过程包括如下步骤:
步骤11、主机节点X将要发送的消息和目的主机节点Y写入内存数据库中间表;
步骤12、分布式系统内的所有主机节点定时轮询内存数据库中间表;
步骤13、主机节点Y查到中间表中有发到自身节点的消息,取出进行处理,处理完成后删除记录。
作为本发明的进一步改进,所述主机节点向全系统发送消息的过程包括如下步骤:
步骤21、主机节点X将要发送的消息写入内存数据库中间表;
步骤22、分布式系统内的所有主机节点定时轮询内存数据库中间表;
步骤23、任一主机节点查到中间表中有非自身发出的、未指定目的节点的消息,则立即锁定表记录,取出进行处理,处理完成后删除记录。
与现有技术相比,本发明的有益效果为:
本发明基于内存数据库实现分布式系统多主机间的消息交互,解决了分布式环境下多主机之间低速、高时延传递数据信息的难题,适用于消息体量小、数量多,有高时效、低时延要求的高性能实时业务处理系统。
附图说明
图1为本发明一种实施例公开的分布式系统的架构图;
图2为本发明一种实施例公开的节点X向节点Y发送消息的流程图;
图3为本发明一种实施例公开的节点X向其他所有节点发送消息的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
本发明提供一种基于内存数据库的多主机间消息交互方法,该多主机间消息交互方法适用于分布式系统;其中,如图1所示,本发明的分布式系统包括多个主机节点(包含一个主节点和多个从节点)和内容数据库,所有主机节点均与内容数据库相连,分布式系统各主机节点通过读写中间表进行消息交互,处理消息后自行删除已处理的消息记录。
本发明多主机间消息交互方法包括:
建立带有业务处理流程的内存数据库中间表;主机节点间发送消息,分布式系统主机节点间通过读写建立的内存数据库中间表进行消息交互。
具体的:
建立带有业务处理流程的内存数据库中间表;一主机节点将所需发送的消息和目的节点写入内存数据库中间表;所有主机节点定时轮询数据库中间表;若数据库中间表中存在发往本节点的消息或存在非本节点发出且未指定目的节点的消息,则读取消息并处理;主机节点处理消息后,自行删除已处理的消息记录。
在上述多主机间消息交互的过程中,内存数据库中间表包含如下字段:
1)msg_id:消息流水
消息唯一标识,由源主机编号+时间戳+序列号组成。
2)msg_content:消息内容
需要传递的消息内容主体,可以是需要进行操作命令。
3)busi_content:业务内容
可选字段,此消息可携带的业务内容,例如在短信网关分布式系统中,可携带短信报文消息体。
4)dst_node:目的节点
可选字段,此消息发往的目的节点主机编号,如为空,则表示所有节点均可处理.
5)expire_time:消息失效时间
此条消息失效的时间,避免消息超时影响业务处理时效。
更具体的:
如图2所示,本发明主机节点X向主机节点Y发送消息的过程包括如下步骤:
步骤11、主机节点X将要发送的消息和目的主机节点Y写入内存数据库中间表;
步骤12、分布式系统内的所有主机节点定时轮询内存数据库中间表;
步骤13、主机节点Y查到中间表中有发到自身节点的消息,取出进行处理,处理完成后删除记录。
如图3所示,本发明的主机节点向全系统发送消息的过程包括如下步骤:
步骤21、主机节点X将要发送的消息写入内存数据库中间表;
步骤22、分布式系统内的所有主机节点定时轮询内存数据库中间表;
步骤23、任一主机节点查到中间表中有非自身发出的、未指定目的节点的消息,则立即锁定表记录,取出进行处理,处理完成后删除记录。
实施例:
在短信网关系统中,因分布式主机节点众多,每个节点均可接收短信中心的上行短信,但不是每个节点都有该上行将要发送的业务节点连接;为此此,根据本发明的多主机间消息交互方法,其在短信网关系统上可用于实现上行短信路由功能。
具体实现方法,包括:
步骤1、短信网关节点(节点X)收到短信中心的上行后,首先判断该上行要发送的业务节点是否在本节点有连接,有则直接发送,无则进行下一步;
步骤2、节点X计算出该上行短信需要发送的业务节点所连接的短信网关节点编号(节点Y),将该上行写入内存数据库中间表;
步骤3、如图2所示的流程,节点Y在轮询消息中间表时,发现有发往本节点的消息,则读取进行处理,将该上行短信发送到正确的业务节点,处理完成后删除记录。
本发明的优点为:
本发明基于内存数据库实现分布式系统多主机间的消息交互,解决了分布式环境下多主机之间低速、高时延传递数据信息的难题,适用于消息体量小、数量多,有高时效、低时延要求的高性能实时业务处理系统。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于内存数据库的多主机间消息交互方法,其特征在于,包括多个主机节点,所有所述主机节点均与内容数据库相连;
所述多主机间消息交互方法包括:
建立带有业务处理流程的内存数据库中间表;
短信网关节点X收到短信中心的上行短信后,首先判断该上行短信要发送的业务节点是否在本节点有连接,有则直接发送,无则进行下一步;
节点X计算出该上行短信需要发送的业务节点所连接的短信网关节点编号:节点Y,将该上行短信写入内存数据库中间表;
节点Y在轮询消息中间表时,发现有发往本节点的消息,则读取进行处理,将该上行短信发送到正确的业务节点。
2.如权利要求1所述的多主机间消息交互方法,其特征在于,所述数据库中间表包括:
消息流水,所述消息流水为消息唯一标识,由源主机编号、时间戳和序列号组成;
消息内容,所述消息内容为需要传递的消息内容主体;
业务内容,所述业务内容为消息可携带的业务内容;
目的节点,所述目的节点为需要发送的消息发往的目的节点主机编号,所述主机编号为带字节编号或空白编号,所述空白编号的解码为所有节点均可处理;
消息失效时间。
3.如权利要求1所述的多主机间消息交互方法,其特征在于,所述主机节点处理消息后,自行删除已处理的消息记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328878.3A CN111522818B (zh) | 2020-04-23 | 2020-04-23 | 一种基于内存数据库的多主机间消息交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328878.3A CN111522818B (zh) | 2020-04-23 | 2020-04-23 | 一种基于内存数据库的多主机间消息交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522818A CN111522818A (zh) | 2020-08-11 |
CN111522818B true CN111522818B (zh) | 2023-09-26 |
Family
ID=71904563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010328878.3A Active CN111522818B (zh) | 2020-04-23 | 2020-04-23 | 一种基于内存数据库的多主机间消息交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522818B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005100074A (ja) * | 2003-09-25 | 2005-04-14 | Hitachi Ltd | 中間データベースを利用した企業間リアルタイムデータ連携装置及び方法 |
US7167924B1 (en) * | 1996-06-10 | 2007-01-23 | Diebold, Incorporated | Financial transaction processing system and method |
CN101646154A (zh) * | 2009-08-25 | 2010-02-10 | 中兴通讯股份有限公司 | 消息类应用网关对包月sp业务的鉴权方法及其系统 |
CN102741843A (zh) * | 2011-03-22 | 2012-10-17 | 青岛海信传媒网络技术有限公司 | 从数据库中读取数据的方法及装置 |
CN103906018A (zh) * | 2012-12-26 | 2014-07-02 | 中国移动通信集团福建有限公司 | 一种用于发送短信的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130085895A1 (en) * | 2011-09-30 | 2013-04-04 | Oracle International Corporation | High throughput global order promising system |
US20150262127A1 (en) * | 2014-03-17 | 2015-09-17 | Carsten Ziegler | Generation and optimzation of in-memory database business rule logic |
-
2020
- 2020-04-23 CN CN202010328878.3A patent/CN111522818B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167924B1 (en) * | 1996-06-10 | 2007-01-23 | Diebold, Incorporated | Financial transaction processing system and method |
JP2005100074A (ja) * | 2003-09-25 | 2005-04-14 | Hitachi Ltd | 中間データベースを利用した企業間リアルタイムデータ連携装置及び方法 |
CN101646154A (zh) * | 2009-08-25 | 2010-02-10 | 中兴通讯股份有限公司 | 消息类应用网关对包月sp业务的鉴权方法及其系统 |
CN102741843A (zh) * | 2011-03-22 | 2012-10-17 | 青岛海信传媒网络技术有限公司 | 从数据库中读取数据的方法及装置 |
CN103906018A (zh) * | 2012-12-26 | 2014-07-02 | 中国移动通信集团福建有限公司 | 一种用于发送短信的方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种高效的并行内存数据库事务提交与恢复技术;周晓云等;《中国矿业大学学报》;20090115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111522818A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222091A (zh) | 一种海量数据实时统计分析方法 | |
CN109194736B (zh) | 消息去重方法、装置、电子设备、介质和无人车 | |
WO2017181872A1 (zh) | 数据处理系统以及方法 | |
CN101277272A (zh) | 一种海量广播数据入库的实现方法 | |
CN105227662A (zh) | 消息处理方法、装置和系统 | |
CN110457251B (zh) | 一种多处理器间的数据通信方法及装置 | |
US20160241635A1 (en) | M2m data querying and invoking methods, querying and invoking devices, and system | |
CN111046100A (zh) | 一种关系型数据库到非关系型数据库的同步方法和系统 | |
CN110390082B (zh) | 一种通信矩阵对比方法及系统 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN114244752A (zh) | 流量统计方法、装置和设备 | |
CN111522818B (zh) | 一种基于内存数据库的多主机间消息交互方法 | |
CN109525633B (zh) | 区块链网络、基于区块链网络的消息发送、消息接收方法 | |
CN105700859A (zh) | 一种基于网络处理器实现硬件表遍历的方法及装置 | |
CN113157465A (zh) | 基于指针链表的消息发送方法及装置 | |
CN113645008B (zh) | 一种基于链表的报文协议超时重发方法及系统 | |
CN112491620B (zh) | 一种基于srio的多通道数据传输控制器及调整方法 | |
CN110069422B (zh) | 基于mips多核处理器的内存缓冲区回收方法 | |
CN113239015A (zh) | 一种数据迁移方法、系统及存储介质 | |
CN108347373B (zh) | 一种企业app实现即时通信的方法及系统 | |
CN113760920A (zh) | 一种数据同步方法、装置、电子设备和存储介质 | |
CN114265903B (zh) | 一种数据收集和分发系统及工作方法 | |
CN111159132A (zh) | 一种基于hdfs的批量小文件处理系统 | |
CN114866594B (zh) | 设备连接管理方法、装置、系统、服务器及可读存储介质 | |
CN109284274A (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 |