CN111651281A - 一种消息发布和订阅方法和系统 - Google Patents
一种消息发布和订阅方法和系统 Download PDFInfo
- Publication number
- CN111651281A CN111651281A CN202010343584.8A CN202010343584A CN111651281A CN 111651281 A CN111651281 A CN 111651281A CN 202010343584 A CN202010343584 A CN 202010343584A CN 111651281 A CN111651281 A CN 111651281A
- Authority
- CN
- China
- Prior art keywords
- subscription
- event
- thread
- user
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012544 monitoring process Methods 0.000 claims abstract description 24
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种消息发布和订阅方法和系统,包括:创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;创建订阅线程,订阅线程对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息。通过对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表,再对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息,能够针对具体的订阅内容,将对应的消息实时发送给用户,不需要存储多份相同数据,分别发布给不同用户,成本低。
Description
技术领域
本申请涉及信息处理领域,尤其涉及一种消息发布和订阅方法和系统。
背景技术
现有的消息中间件实现的订阅和发布机制,大都基于话题(Topic),用户只能根据话题的不同订阅不同的消息,不能进一步细分。比如某用户只对某一话题下的消息中的部分内容感兴趣,但该话题下并非所有消息都包含此用户关心的内容,此时用户只能将该话题下的消息全部订阅接收,自行过滤、应用。再者,同一份数据,若不同用户有不同的消息内容需求时,也只能按用户的需求创建不同的话题,存储多份相同数据,分别发布给不同用户,这样会占用大量的成本。
现有消息中间件实现的订阅和发布机制,作为消费者基本都采取定时拉取方式来消费数据,这样会有一定延迟,在大数据流量下,延迟会更加明显;无法满足用户对最新数据有实时获取的需求。
综上所述,需要提供一种能够根据订阅的消息的内容,实时将消息发送至订阅用户,且成本低的的消息发布和订阅方法和系统。
发明内容
为解决以上问题,本申请提出了一种消息发布和订阅方法和系统。
一方面,本申请提出一种消息发布和订阅方法,包括:
创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;
创建订阅线程,订阅线程对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;
对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息。
优选地,所述对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息,包括:
将接收到的消息按照定义格式进行拆分,得到字段组;
获取各字段组中的字段内容,根据注册表中的订阅条件确定订阅用户;
根据订阅用户对应的所述订阅条件,对订阅用户进行去重;
发送所述消息至订阅用户。
优选地,所述发送所述消息至订阅用户,包括:
根据用户的登录或注销状态,将所述消息发送至当前状态为登录的订阅用户。
优选地,在所述发送消息至订阅用户之前,还包括:
创建用户管理线程;
事件监听线程利用回调函数分别处理每个读写事件,获取登录或注销事件,发送至用户管理线程;
用户管理线程确定用户的登录或注销状态。
优选地,在所述事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程之前,还包括:
创建订阅线程。
优选地,所述订阅条件包括:字段索引和字段内容。
第二方面,本申请提出一种消息发布和订阅系统,包括:
管理模块,用于创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;
订阅模块,用于创建订阅线程,订阅线程对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;
分发模块,用于对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息。
优选地,所述分发模块,具体用于将接收到的消息按照定义格式进行拆分,得到字段组;获取各字段组中的字段内容,根据注册表中的订阅条件确定订阅用户;根据订阅用户对应的所述订阅条件,对订阅用户进行去重;发送所述消息至订阅用户。
优选地,所述分发模块根据用户的登录或注销状态,将所述消息发送至当前状态为登录的订阅用户。
优选地,管理模块,还用于创建用户管理线程;事件监听线程利用回调函数分别处理每个读写事件,获取登录或注销事件,发送至用户管理线程;用户管理线程确定用户的登录或注销状态。
本申请的优点在于:通过对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表,再对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息,能够针对具体的订阅内容,将对应的消息实时发送给用户,不需要存储多份相同数据,分别发布给不同用户,成本低。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选事实方案的目的,而并不认为是对本申请的限制。而且在整个附图中,用同样的参考符号表示相同的部件。在附图中:
图1是本申请提供的一种消息发布和订阅方法的步骤示意图;
图2是本申请提供的一种消息发布和订阅方法的流程示意图;
图3是本申请提供的一种消息发布和订阅系统的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
根据本申请的实施方式,提出一种消息发布和订阅方法,如图1所示,包括:
S101,创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;
S102,创建订阅线程,订阅线程对订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;
S103,对接收到的消息进行拆分,根据注册表中的订阅条件确定订阅用户,发送消息。
对接收到的消息进行拆分,根据注册表中的订阅条件确定订阅用户,发送消息,包括:
将接收到的消息按照定义格式进行拆分,得到字段组;
获取各字段组中的字段内容,根据注册表中的订阅条件确定订阅用户;
根据订阅用户对应的订阅条件,对订阅用户进行去重;
发送消息至订阅用户。
发送消息至订阅用户,包括:
根据用户的登录或注销状态,将消息发送至当前状态为登录的订阅用户。
在发送消息至订阅用户之前,还包括:
创建用户管理线程;
事件监听线程利用回调函数分别处理每个读写事件,获取登录或注销事件,发送至用户管理线程;
用户管理线程确定用户的登录或注销状态。
在事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程之前,还包括:
创建订阅线程。
订阅条件包括:字段索引和字段内容。
下面,对本申请的实施方式进行进一步说明,如图2所示。
首先创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,从读写事件中获取订阅事件,发送至订阅线程。创建订阅线程,订阅线程对订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表。之后,对接收到的消息按照定义格式进行拆分,根据注册表中的订阅条件确定订阅用户,发送所述消息。
以用户A订阅字段组1和字段内容001,用户B订阅字段组1和字段内容002,用户C订阅字段组2和字段内容1234,用户D订阅字段组2和字段内容2345,用户E订阅字段组3和字段内容ABC。实时接收到两条消息,分别为消息X和消息Y。其中,消息X包括001|1234|ABC,消息Y包括002|1234|xds。消息X和消息Y均包括三个字段组,消息X的第一个字段组为001,第二个字段组为1234,第三字段组为ABC,各字段组对应的索引依次为索引0、1、2。消息Y同理。根据用户A、B、C、D和E的订阅条件,确定订阅用户。则消息X发送给用户A、C和E,消息Y发送给用户B和C,消息X和消息Y不满足用户D的订阅条件。
在发送消息至对应用户之前,还需要根据订阅用户对应的订阅条件,对订阅用户进行去重,之后实时发送消息至对应的订阅用户。
当订阅用户发起取消订阅请求时(包括取消订阅字段编号),则立即注销此订阅用户与的订阅条件的关系。
在车联网行业,服务商对名下车辆进行管控分析车辆行驶轨迹时,可通过不同维度进行计算分析,比如车籍地、行驶区域、指定车辆(车牌号或车架号)的订阅条件。实时定位消息中只需包含这些字段以及对应的字段内容,即可通过本申请的实时方式,建立一个车辆实时定位消息中心,计算服务便可根据这些字段中的不同内容值进行订阅接收,消息中心实现按需分发。
第二方面,根据本申请的实施方式,还提出一种消息发布和订阅系统,如图3所示,包括:
管理模块101,用于创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;
订阅模块102,用于创建订阅线程,订阅线程对订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;
分发模块103,用于对接收到的消息进行拆分,根据注册表中的订阅条件确定订阅用户,发送消息。
分发模块,具体用于将接收到的消息按照定义格式进行拆分,得到字段组;获取各字段组中的字段内容,根据注册表中的订阅条件确定订阅用户;根据订阅用户对应的订阅条件,对订阅用户进行去重;发送消息至订阅用户。
订阅模块还用于当订阅用户发起取消订阅请求时(包括取消订阅字段编号),立即注销此订阅用户与的订阅条件的关系。
分发模块根据用户的登录或注销状态,将消息实时发送至当前状态为登录的订阅用户。
若订阅用户当前为注销状态,则等订阅用户的状态变为登录状态时,发送对应的消息至订阅用户。
管理模块,还用于创建用户管理线程;事件监听线程利用回调函数分别处理每个读写事件,获取登录或注销事件,发送至用户管理线程;用户管理线程确定用户的登录或注销状态。
本申请的方法中,通过对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表,再对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息,能够针对具体的订阅内容,将对应的消息实时发送给用户,不需要存储多份相同数据,分别发布给不同用户,成本低。现有的消息分发方式,对于同一份数据,若不同用户有不同的消息内容需求时,也只能按用户的需求创建不同的话题,存储多份相同数据,分别发布给不同用户,这样会大量占用存储成本、带宽成本、性能成本、用户的使用成本。而本身的实施方式则可以通过定义格式以及对接收到的消息进行拆分,不需要存储多份相同数据即可发送至对应的订阅客户,节省了存储成本、带宽成本、性能成本以及用户的使用成本。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种消息发布和订阅方法,其特征在于,包括:
创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;
创建订阅线程,订阅线程对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;
对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息。
2.如权利要求1所述的方法,其特征在于,所述对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息,包括:
将接收到的消息按照定义格式进行拆分,得到字段组;
获取各字段组中的字段内容,根据注册表中的订阅条件确定订阅用户;
根据订阅用户对应的所述订阅条件,对订阅用户进行去重;
发送所述消息至订阅用户。
3.如权利要求2所述的方法,其特征在于,所述发送所述消息至订阅用户,包括:
根据用户的登录或注销状态,将所述消息发送至当前状态为登录的订阅用户。
4.如权利要求2所述的方法,其特征在于,在所述发送消息至订阅用户之前,还包括:
创建用户管理线程;
事件监听线程利用回调函数分别处理每个读写事件,获取登录或注销事件,发送至用户管理线程;
用户管理线程确定用户的登录或注销状态。
5.如权利要求1所述的方法,其特征在于,在所述事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程之前,还包括:
创建订阅线程。
6.如权利要求1所述的方法,其特征在于,所述订阅条件包括:字段索引和字段内容。
7.一种消息发布和订阅系统,其特征在于,包括:
管理模块,用于创建事件监听线程,事件监听线程利用回调函数分别处理每个读写事件,获取订阅事件,发送至订阅线程;
订阅模块,用于创建订阅线程,订阅线程对所述订阅事件中的订阅请求按定义格式进行分类,将订阅用户和订阅条件加入注册表;
分发模块,用于对接收到的消息进行拆分,根据所述注册表中的订阅条件确定订阅用户,发送所述消息。
8.如权利要求7所述的系统,其特征在于,所述分发模块,具体用于将接收到的消息按照定义格式进行拆分,得到字段组;获取各字段组中的字段内容,根据注册表中的订阅条件确定订阅用户;根据订阅用户对应的所述订阅条件,对订阅用户进行去重;发送所述消息至订阅用户。
9.如权利要求8所述的系统,其特征在于,所述分发模块根据用户的登录或注销状态,将所述消息发送至当前状态为登录的订阅用户。
10.如权利要求8所述的系统,其特征在于,管理模块,还用于创建用户管理线程;事件监听线程利用回调函数分别处理每个读写事件,获取登录或注销事件,发送至用户管理线程;用户管理线程确定用户的登录或注销状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010343584.8A CN111651281A (zh) | 2020-04-27 | 2020-04-27 | 一种消息发布和订阅方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010343584.8A CN111651281A (zh) | 2020-04-27 | 2020-04-27 | 一种消息发布和订阅方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111651281A true CN111651281A (zh) | 2020-09-11 |
Family
ID=72345419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010343584.8A Pending CN111651281A (zh) | 2020-04-27 | 2020-04-27 | 一种消息发布和订阅方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651281A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688859A (zh) * | 2020-12-18 | 2021-04-20 | 维沃移动通信有限公司 | 语音消息的发送方法、装置、电子设备及可读存储介质 |
CN112751748A (zh) * | 2020-12-28 | 2021-05-04 | 百果园技术(新加坡)有限公司 | 会话消息管理方法、装置、服务器和可读存储介质 |
CN114006945A (zh) * | 2021-10-15 | 2022-02-01 | 广州鲁邦通智能科技有限公司 | 一种物联网数据的智能分组分发的方法、物联网平台 |
CN115189918A (zh) * | 2022-06-17 | 2022-10-14 | 江苏电力信息技术有限公司 | 一种基于个性化适配的信息分发方法 |
CN117251307A (zh) * | 2023-11-10 | 2023-12-19 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种事件订阅发布方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274730A (zh) * | 2018-09-04 | 2019-01-25 | 上海联寓智能科技有限公司 | 物联网系统、mqtt消息传输的优化方法及装置 |
CN110113362A (zh) * | 2019-05-29 | 2019-08-09 | 杭州海兴泽科信息技术有限公司 | 一种基于mqtt协议的消息实时推送方法 |
CN110278231A (zh) * | 2018-03-16 | 2019-09-24 | 中移(苏州)软件技术有限公司 | 一种数据订阅分发方法及系统 |
-
2020
- 2020-04-27 CN CN202010343584.8A patent/CN111651281A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278231A (zh) * | 2018-03-16 | 2019-09-24 | 中移(苏州)软件技术有限公司 | 一种数据订阅分发方法及系统 |
CN109274730A (zh) * | 2018-09-04 | 2019-01-25 | 上海联寓智能科技有限公司 | 物联网系统、mqtt消息传输的优化方法及装置 |
CN110113362A (zh) * | 2019-05-29 | 2019-08-09 | 杭州海兴泽科信息技术有限公司 | 一种基于mqtt协议的消息实时推送方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688859A (zh) * | 2020-12-18 | 2021-04-20 | 维沃移动通信有限公司 | 语音消息的发送方法、装置、电子设备及可读存储介质 |
CN112751748A (zh) * | 2020-12-28 | 2021-05-04 | 百果园技术(新加坡)有限公司 | 会话消息管理方法、装置、服务器和可读存储介质 |
CN114006945A (zh) * | 2021-10-15 | 2022-02-01 | 广州鲁邦通智能科技有限公司 | 一种物联网数据的智能分组分发的方法、物联网平台 |
CN115189918A (zh) * | 2022-06-17 | 2022-10-14 | 江苏电力信息技术有限公司 | 一种基于个性化适配的信息分发方法 |
CN117251307A (zh) * | 2023-11-10 | 2023-12-19 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种事件订阅发布方法、装置、设备及介质 |
CN117251307B (zh) * | 2023-11-10 | 2024-01-26 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种事件订阅发布方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651281A (zh) | 一种消息发布和订阅方法和系统 | |
US7793140B2 (en) | Method and system for handling failover in a distributed environment that uses session affinity | |
WO2020258290A1 (zh) | 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统 | |
US10630628B2 (en) | Systems and methods for managing vehicles | |
CN107707943B (zh) | 一种实现云服务融合的方法及系统 | |
US8495160B2 (en) | System for controlling retention of data messages | |
EP2044749B1 (en) | Dispatching request fragments from a response aggregating surrogate | |
US10157476B1 (en) | Self-learning spatial recognition system | |
CN111913738B (zh) | 访问请求的处理方法、装置、计算设备和介质 | |
CN109918349A (zh) | 日志处理方法、装置、存储介质和电子装置 | |
CN111459986B (zh) | 数据计算系统及方法 | |
CN107203541A (zh) | 页面加载方法及其页面加载装置 | |
CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
JP2007018508A (ja) | コンピュータネットワークを介して配信されたドキュメントにおけるインプレッションを表示するための技術 | |
CN109190025B (zh) | 信息监控方法、装置、系统和计算机可读存储介质 | |
US11283725B2 (en) | Event content delivery | |
CN111432247B (zh) | 流量调度方法、装置、服务器及存储介质 | |
CN108540367B (zh) | 一种消息处理方法及系统 | |
US10529080B2 (en) | Automatic thoroughfare recognition and traffic counting | |
CN114036390A (zh) | 场景服务推荐方法、装置、电子设备以及存储介质 | |
CN113645287B (zh) | 汽车报文存储方法及装置、汽车报文存储系统 | |
US20150256502A1 (en) | Method and system for processing social network information | |
US20110131282A1 (en) | System and method for automatically building up topic-specific messaging identities | |
CN112148268A (zh) | 一种关于车载定位实时跟踪的监控系统及方法 | |
JP2002366393A (ja) | 計算機稼動情報収集方法及びその実施システム並びにその処理プログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200911 |