[发明专利]一种即时通讯系统消息的储存及同步方法有效
申请号: | 202010476297.4 | 申请日: | 2020-05-29 |
公开(公告)号: | CN111669313B | 公开(公告)日: | 2022-05-03 |
发明(设计)人: | 黄继昌;李华;赵亚飞;于波 | 申请(专利权)人: | 广西东信互联科技有限公司 |
主分类号: | H04L51/04 | 分类号: | H04L51/04;H04L51/216;G06F16/22;G06F16/2458;G06F16/27 |
代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 王雪 |
地址: | 530200 广西壮*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 即时通讯 系统 消息 储存 同步 方法 | ||
1.一种即时通讯系统消息的储存及同步方法,其特征在于,包括如下步骤:
S1、当消息主程序接收到消息存储的请求后,主程序调用消息订阅器的订阅对象创建接口,订阅器根据消息类型,生成一个订阅消息对象,订阅消息对象包含订阅id、扩散类型和消息内容;
S2、主程序根据订阅消息对象的订阅id,调用订阅id配置器,获取订阅id对应的消息处理服务地址及分表名称,订阅id配置器根据规则返回消息处理服务地址及分表名称;
S3、主程序根据消息服务地址调用消息处理服务将订阅消息对象存储到对应分表中;
S4、当主程序接收到消息同步请求后,主程序调用消息订阅器查询接口,查询接口查询到用户的订阅id数组,将订阅id数组拆分成4份,使用4个线程并发查询这4份订阅id所对应的消息;
S5、主程序遍历订阅id数组,调用订阅id配置器获取订阅id所对应的消息处理服务及分表;
S6、主程序调用消息处理服务从对应的分表中查询到订阅id对应的消息,并等待4个线程处理完后,合并所有的订阅消息并返回。
2.如权利要求1所述的即时通讯系统消息的储存及同步方法,其特征在于,所述步骤S1中,所述消息类型包括单聊信息和群聊信息,若为单聊信息则使用发送消息的用户id和接收消息的用户id作为订阅id,若是群聊消息,则使用群id作为订阅id。
3.如权利要求1所述的即时通讯系统消息的储存及同步方法,其特征在于,所述订阅id配置器结构包括:
订阅id类型配置,其用于配置不同订阅id类型的消息处理服务的名称、消息处理服务的最大数量、存储的分表名称、存储的分表最大数量;
消息处理服务实例配置,其用于记录每个消息处理服务当前所对应的订阅id总数;
消息处理服务分表实例配置,其用于记录每个消息处理服务中每张分表当前所对应的订阅id总数;以及
订阅id映射位置配置,其用于记录订阅id所对应的消息处理服务实例及分表实例。
4.如权利要求1所述的即时通讯系统消息的储存及同步方法,其特征在于,所述订阅id映射位置查询及生成包括以下步骤:
1)主程序根据订阅id,在订阅id映射位置配置中,查询其所对应的消息处理服务实例及分表实例,如果找到则返回,找不到则进入下一步骤;
2)订阅id配置器根据订阅id的类型,到订阅id类型配置中找到其对应的消息处理服务的名称、消息处理服务的最大数量、存储的分表名称、存储的分表最大数量;
3)根据消息处理服务名称,到消息处理服务实例配置中,找到对应最新的消息处理服务实例;
4)根据消息处理服务实例,到消息处理服务分表实例配置中,找到对应的最新的分表实例;
5)主程序返回该订阅id的对应的消息处理服务实例及分表实例,并在订阅id映射位置配置中新增一条记录。
5.如权利要求4所述的即时通讯系统消息的储存及同步方法,其特征在于,所述步骤3)中,若最新的消息处理服务实例所处理的数量大于或等于配置数,则新增一个消息处理服务实例,若最新的消息处理服务实例所处理的数量小于配置数量则返回当前消息处理服务实例,且当前消息处理服务实例处理数量加1;如果找不到对应最新的消息处理服务实例,则创建一个新的消息处理服务实例。
6.如权利要求4所述的即时通讯系统消息的储存及同步方法,其特征在于,所述步骤4)中,如果该分表实例处理的数量大于或等于配置的数量,则新增一个分表实例,如果小于配置数量则返回当前分表实例,且当前分表实例处理数加1,如果找不到分表实例,则创建一个新的分表实例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广西东信互联科技有限公司,未经广西东信互联科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010476297.4/1.html,转载请声明来源钻瓜专利网。