[发明专利]一种基于分布式协调系统的线程数量动态调整方法及系统在审
申请号: | 202110609360.1 | 申请日: | 2021-06-01 |
公开(公告)号: | CN113391892A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 许雅 | 申请(专利权)人: | 上海轻轻信息科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 上海申新律师事务所 31272 | 代理人: | 党蕾 |
地址: | 200051 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分布式 协调 系统 线程 数量 动态 调整 方法 | ||
1.一种基于分布式协调系统的线程数量动态调整方法,其特征在于,包括:
步骤S1,长连接服务器接收到一房间的白板消息,并将所述白板消息写入所述房间对应的缓存中;
步骤S2,所述长连接服务器判断当前是否有处理同一房间的所述白板消息的线程,并在当前没有处理同一房间的所述白板消息的线程时,在分布式协调系统的第一节点实例中写入一标记位信息,进而发送一触发信号至白板消息处理器;
步骤S3,所述白板消息处理器接收到所述触发信号后,主动竞争获取所述房间的消息处理权,并在竞争成功后于所述分布式协调系统中创建一第二节点实例,并启动一新的线程处理所述房间的白板消息。
2.根据权利要求1所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,每个所述房间对应于一唯一编号;
当所述长连接服务器接收到所述房间的白板消息时,所述长连接服务器将所述白板消息发送至所述房间对应的缓存中,具体包括:
所述长连接服务器在所述缓存中建立一个key值,将所述key值作为所述房间的id键,并将所述白板消息按顺序存储到所述id键对应的缓存对象中,并设置缓存的过期时间。
3.根据权利要求1所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,所述步骤S2中,还包括:
判断所述分布式协调系统中是否有处理同一所述房间的白板消息的所述第二节点实例,若无处理同一所述房间的白板消息的第二节点实例,则于所述分布式协调系统中创建一新的第一节点实例。
4.根据权利要求1所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,还包括:
若所述步骤S2中的判断结果表示当前存在处理同一所述房间的白板消息的线程时,则所述长连接服务器将消息写入到缓存实例中;
若所述步骤S2中的判断结果表示当前并不存在处理同一所述房间的白板消息的线程时,且上次往所述分布式协调系统的第一节点实例中写入标记位信息的时间距离当前时间在约定的通知延迟等待时间周期内,则所述长连接服务器依旧将消息写入到缓存实例中;
若所述步骤S2中的判断结果表示当前并不存在处理同一所述房间的白板消息的线程时,且上次往所述分布式协调系统的第一节点实例中写入标记位信息的时间距离当前时间已超过约定的通知延迟等待时间周期,则所述长连接服务器将所述白板消息写入到缓存实例中,并更新所述分布式协调系统中同一所述房间对应的所述第一节点实例中的标记位信息。
5.根据权利要求4所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,所述白板消息处理器通过抢占分布式锁来启动对应的所述线程,以对获取的所述分布式协调系统第一节点实例中对应的所述缓存对应白板房间的所述白板消息进行处理。
6.根据权利要求1所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,所述步骤S3中,还包括:
当所述白板消息处理器成功启动新的所述线程后,于所述分布式协调系统中创建所述第二节点实例,以发送一通知信号至所述长连接服务器。
7.根据权利要求1所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,同一所述线程处理同一房间的所述白板消息;
还包括:
当所述线程未接收到同一所述房间的白板消息且超过一约定的通知延迟等待时间周期,则所述白板消息处理器销毁所述线程。
8.根据权利要求1所述的一种基于分布式协调系统的线程数量动态调整方法,其特征在于,当所述线程处理完同一所述房间的白板消息时,退出所述线程,同时所述白板消息处理器删除所述线程对应的所述第二节点实例。
9.一种基于分布式协调系统的线程数量动态调整系统,其特征在于,用于实施如权利要求1-8任意一项所述的基于分布式协调系统的线程数量动态调整方法,包括:
一长连接服务器,用于接收一房间的白板消息,并判断当前是否有处理同一所述房间的白板消息的线程,以及将所述白板消息发送至所述房间对应的缓存中存储;
一白板消息处理器,用于启动线程,以处理所述房间的白板消息;
一分布式协调系统,分别连接所述长连接服务器和所述白板消息处理器,所述分布式协调系统包括:
一第一写入单元,用于当所述长连接服务器接收到所述房间的白板消息时,供所述长连接服务器创建一第一节点实例,并将所述白板消息对应房间的标记位信息写入所述第一节点实例中;
一第二写入单元,用于当所述白板消息处理器启动新的线程处理所述房间的白板消息时,供所述白板消息处理器创建一第二节点实例;
所述白板消息处理器还包括:一第一监听单元,用于供所述白板消息处理器监听所述第一节点实例,当所述第一节点实例发生变化时,所述白板消息处理器启动线程对所述白板消息进行处理;
所述长连接服务器还包括:一第二监听单元,用于供所述长连接服务器监听所述第二节点实例,当所述第二节点实例发生变化时,所述长连接服务器缓存对应的所述线程所处理的所述房间对应的所述白板信息,并删除所述线程处理的所述白板消息对应所述第一节点实例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海轻轻信息科技有限公司,未经上海轻轻信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110609360.1/1.html,转载请声明来源钻瓜专利网。