CN109446216A - 一种支持sql语法的消息系统 - Google Patents

一种支持sql语法的消息系统 Download PDF

Info

Publication number
CN109446216A
CN109446216A CN201811063709.0A CN201811063709A CN109446216A CN 109446216 A CN109446216 A CN 109446216A CN 201811063709 A CN201811063709 A CN 201811063709A CN 109446216 A CN109446216 A CN 109446216A
Authority
CN
China
Prior art keywords
message
middleware
sql
theme
sql syntax
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.)
Pending
Application number
CN201811063709.0A
Other languages
English (en)
Inventor
曾博远
罗文辉
陶瑞甫
胡冠睿
景富香
王轮樟
齐秋灝
郭智
梁宏韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Where A Thai Zhuhai Geek Technology LLC
Original Assignee
Where A Thai Zhuhai Geek Technology LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Where A Thai Zhuhai Geek Technology LLC filed Critical Where A Thai Zhuhai Geek Technology LLC
Priority to CN201811063709.0A priority Critical patent/CN109446216A/zh
Publication of CN109446216A publication Critical patent/CN109446216A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种支持SQL语法的消息系统。所谓消息系统就是消息中间件,消息中间件作为中间件的一种,具有屏蔽底层服务差异化的特点,对外部使用者提供了统一的易用的接口来实现收发消息从而屏蔽了底层细节。通常来说消息的消费者和消息发送者具备处理消息的能力,而支持SQL语法的消息中间件,则将额外具备中间件层的对消息本身的处理能力,结合中间件层高性能和强大的解耦特性,基于SQL语法的消息系统将会具备对消息的即时过滤和可针对配置消息的增删改查,可以用作冗余备份保证数据完整性也可以支定制更强更强大的api以支撑消息中间件的高可用扩展。

Description

一种支持SQL语法的消息系统
技术领域
本发明涉及支持SQL语法的消息系统(下文也称消息中间件)的客户端,和相对应的中间件配套技术,易参考数据处理整合领域,特别是涉及DQL(数据查询语言)的相关配套技术。
背景技术
消息中间件的作用是通过对消息的路由和派发,达到支持水平扩容和服务的解耦合的底层技术。基于消息中间件技术开发的客户端,时常需要考虑如何将重要消息缓存和消息的落地等一些列围绕消息的可靠性展开的问题,而这些往往使得服务构建冗繁,消息使用者需要订阅很多消息,并自己进行消息的过滤,再围绕需要落地的消息进行数据存储,消息订阅和发布往往是按照主题(也称为Topic或者Subject)来完成的。
在消息的过滤上,一个典型场景就是订阅的消息仅有部分是需要的,因为往往订阅者是没有直接和数据发布者的有提前约定的,比如数据源发布的数据是十月份的天气情况,并没有提供按日的接口,但是如果需要了解十月中某一天的天气数据,就需要订阅十月消息这个数据源,并且根据返回的数据结构解析后去除不需要的30天的数据。首先这样的操作比较复杂,其次对中间件的负载比较大,假如很多人订阅这一主题,那么将产生很多的重复的冗余的消息,这样对消息源和中间件产生了双重的压力。
基于sql的中间件的发明的目的之一就是为了解决这一问题,回到这个例子中,改进后的中间件的客户端可以使用sql进行以某一天为查询条件的精准查询,而这个查询不需要建立在消息发布源,只需要进行一些基础的配置,中间件本身会将筛选后的消息以需要订阅的主题发布,而查询在中间件内变成轻负担和快速高效的, 使得中间件整体性能有了很大程度的提升。
发明内容
为了解决现有中间件的这些问题,本发明给出一种更加简易和高效的基于中间件的支持SQL(SQL语法)的消息系统,在现有的具有中间节点和设施的中间件(现有流行中间件按照有无中间节点分为两类,有节点的例如:RabbitMQ、RocketMQ等,无节点的例如:ZeroMQ等)基础上增加2个特性:
增加以可配置的基于内存的缓存备份模块作为中间件内部的一部分,这个缓存备份模块将所有配置过的主题之下的消息按照消息协议(例如JSON格式、PROTOBUF格式等)解析后进行缓存,并能够支持消息落地和启动后的重新加载。
增加用于SQL语法操作的特殊的内置主题消息,并确定消息的格式和协议,不同主题具有不同功能。例如设置一个名为“Weather”的主题,这个主题的内容将会被应用到缓存备份模块向其他模块提供SQL操作服务,该主题的消息本身是一条关于两个字段的内容,例如以JSON格式约定后定义的消息:
{“DATE”:“2018/03/14”,“CONTENT”:“RAINY”}
当消息源发布这个主题的消息时,缓存备份模块就会订阅并将这个消息按照约定的消息格式进行解码,之后按照DATE和CONTENT进行键-值存储到关系型内存数据库中例如Hazelcast(一款基于Java的关系型内存数据库),当接入总线的各个客户端需要这个消息的时候,可以约定发送名为“QUERY”的主题消息,缓存备份模块会事先订阅这个主题的消息,这个消息是从客户端发出的,内容为一句SQL语句的消息,例如:
SELECT * FROM Weather WHERE DATE=“2018/03/14”
当存储备份模块接收到这样一条语句时,就会触发SQL解析将Weather和筛选条件解析出来,并调用Hazelcast的查询语句将结果查询出来,也就是之前发布的符合条件的天气信息,再将结果以约定好的例如“RESP_Weather”主题发布,客户端进行了向存储备份模块的查询后会自动订阅这个主题,将消息内容当作返回值处理,这样就完成了基于SQL的消息系统的基本消息交互。
经过以上两部,中间件就具有了通过SQL进行消息过滤的功能,需要被大量订阅的消息的主题可以配置在配置文件里,缓存备份模块去订阅,大量的订阅者直接查询所需要的主题,由于查询是基于内存数据库的,所以是很快速高效的同时可以添加对各个键的自定义筛选,这样不仅减轻了总线和真实发布源的压力还增加了动态筛选的功能,同时由于内置的缓存备份模块本身也是消息中间件的一个客户端,具有水平扩容的特性,方便分片(订阅不同的主题)和备份冗余(订阅相同的主题)来应对大数据和降低延时的场景。
附图说明
图1:总线缓存和SQL语句流向流程图。
具体实施方式
结合图1,详细说明本发明的一个具体实施例,但不对本发明的权利要求作任何限定。
图1中不同数据源的提供查询服务的数据都通过配置譬如yaml(一种配置文件格式)配置主题项, 之后消息源1和消息源2的消息只要是满足配置的主题的消息都会被完整记录到存储备份中,并将消息以键值的结构存储在内存数据库中(也就是key-value的形式)。
将客户端所需要产生的诸如查询增删等操作的SQL语句的载体消息的主题提前约定,并告知存储备份去订阅,消息从消息源A、B出来,被直接订阅并存储到缓存备份模块中,这个模块是基于高速存储的,也会异步地把消息落地到二级存储中,存储备份模块同时订阅客户端a和b将会发送的增删改的主题,当收到消息可以验证消息来源是否有权限修改数据,并解析SQL之后把结果集通过一个带有事先约定前缀或者固定的主题发布,这样需要接收结果集的客户端可以订阅这个主题,就收到了处理过的消息,这样就提供了基于SQL的消息流处理中间件,大大增强了现有中间件的扩展性,并降低了内部的消息负荷。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1.一种支持SQL语法的消息系统,包括sql的中间节点、中间件、客户端、缓存备份模块、消息协议和接口,其特征在于:在所述中间节点和设施的中间件基础上增加可配置的基于内存的缓存备份模块作为中间件内部的一部分。
2.如权利要求1所述的一种支持SQL语法的消息系统,其特征在于:所述缓存备份模块将所有配置过的主题之下的消息,按照消息协议解析后进行缓存,并能够支持消息落地和启动后的重新加载。
3.如权利要求1所述的一种支持SQL语法的消息系统,其特征在于:还可以增加用于SQL语法操作的特殊的内置主题消息,并确定所述消息的格式和协议,不同主题具有不同功能。
4.一种支持SQL语法的消息通信方法,其特征在于:将客户端所需要产生的诸如查询增删等操作的SQL语句的载体消息的主题提前约定,并告知存储备份去订阅,消息从消息源A、B出来,被直接订阅并存储到缓存备份模块中。
5.如权利要求4所述的一种支持SQL语法的消息通信方法,其特征在于:所述缓存备份模块是基于高速存储的,也会异步地把消息落地到二级存储中。
6.如权利要求4所述的一种支持SQL语法的消息通信方法,其特征在于:所述存储备份模块同时订阅客户端a和b将会发送的增删改的主题,当收到消息可以验证消息来源是否有权限修改数据,并解析SQL之后把结果集通过一个带有事先约定前缀或者固定的主题发布。
7.如权利要求4所述的一种支持SQL语法的消息通信方法,其特征在于:需要接收结果集的客户端可以订阅这个主题,就收到了处理过的消息,这样就提供了基于SQL的消息流处理中间件,大大增强了现有中间件的扩展性,并降低了内部的消息负荷。
CN201811063709.0A 2018-09-12 2018-09-12 一种支持sql语法的消息系统 Pending CN109446216A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811063709.0A CN109446216A (zh) 2018-09-12 2018-09-12 一种支持sql语法的消息系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811063709.0A CN109446216A (zh) 2018-09-12 2018-09-12 一种支持sql语法的消息系统

Publications (1)

Publication Number Publication Date
CN109446216A true CN109446216A (zh) 2019-03-08

Family

ID=65531021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811063709.0A Pending CN109446216A (zh) 2018-09-12 2018-09-12 一种支持sql语法的消息系统

Country Status (1)

Country Link
CN (1) CN109446216A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486099A (zh) * 2021-06-23 2021-10-08 华泰证券股份有限公司 一种内存计算服务框架及实现系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209214A (zh) * 2013-04-03 2013-07-17 蓝盾信息安全技术股份有限公司 一种基于NoSQL的消息中间件的实现方法
CN104954469A (zh) * 2015-06-19 2015-09-30 长沙廖氏软件科技有限公司 一种异构系统信息交换方法
CN105472042A (zh) * 2016-01-15 2016-04-06 中煤电气有限公司 Web端控制的消息中间件系统及其数据传送方法
CN105871959A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 一种消息传递的方法、系统和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209214A (zh) * 2013-04-03 2013-07-17 蓝盾信息安全技术股份有限公司 一种基于NoSQL的消息中间件的实现方法
CN105871959A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 一种消息传递的方法、系统和装置
CN104954469A (zh) * 2015-06-19 2015-09-30 长沙廖氏软件科技有限公司 一种异构系统信息交换方法
CN105472042A (zh) * 2016-01-15 2016-04-06 中煤电气有限公司 Web端控制的消息中间件系统及其数据传送方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486099A (zh) * 2021-06-23 2021-10-08 华泰证券股份有限公司 一种内存计算服务框架及实现系统

Similar Documents

Publication Publication Date Title
CN105138592B (zh) 一种基于分布式架构的日志数据存储和检索方法
AU2014209697B2 (en) Method and system for using a recursive event listener on a node in hierarchical data structure
US8755826B2 (en) Internet security updates via mobile phone videos
US6347340B1 (en) Apparatus and method for converting a network message to a wireless transport message using a modular architecture
JP2009532785A (ja) 遠隔装置を介して異なるデータストアを検索するシステム及び方法
WO2019083862A1 (en) METHODS AND APPARATUS FOR USE IN REDUCING SIGNAL LATENCY IN A MOBILE NETWORK USING LOCALIZED UNIFIED DATA MANAGEMENT (UDM) ENTITIES
CN111338812A (zh) 数据处理方法及装置
US11494314B2 (en) Caching system for eventually consistent services
WO2021244473A1 (zh) 频率控制方法及装置
US20100325208A1 (en) Methods and apparatus to forward documents in a communication network
CN112738184A (zh) 一种插件式动态注册分布式微服务网关系统
CN114448686B (zh) 一种基于微服务的跨网络通信装置与方法
CN109446216A (zh) 一种支持sql语法的消息系统
CN111241189A (zh) 一种同步数据的方法和装置
CN114996361B (zh) 数据处理方法及系统
CN114301783B (zh) 用于微服务的优化方法以及装置、存储介质、电子装置
US20160036942A1 (en) Method, system, and apparatus for agent-based architecture for integrated mobile applications
US10972419B2 (en) Archiving messages without message copying
KR101986851B1 (ko) M2m 통신에서의 자원 검색 방법 및 그 장치
WO2010135929A1 (zh) 基于行业网关的集团用户彩信群发方法和系统
CN113138943A (zh) 一种处理请求的方法和装置
US20120209823A1 (en) Method and system for managing database access contention
CN113645069B (zh) 一种集群数据处理方法和集群
US20230396498A1 (en) Optimization of network function profile administration and discovery
CN108173891A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190308

RJ01 Rejection of invention patent application after publication