基于Socket协议的分布式容器集群数据推送方法和系统技术方案

技术编号:38045452 阅读:7 留言:0更新日期:2023-06-30 11:11
本公开的实施例提供了一种基于Socket协议的分布式容器集群数据推送方法和系统。该方法包括分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态,并进入第一从服务器工作流程:当第一从服务器的工作状态为在线状态时,启动第一从服务器进行数据推送;若第一从服务器数据推送异常,则向redis中发送第一从服务器工作异常的消息;当主服务器接收到第一从服务器工作异常的消息后,将持续尝试重连Socket目标端;当主服务器连接Socket目标端成功后,将再次进入下一个从服务器工作流程。以此方式,可以实现推送服务异常的自主恢复,主服务在完成推送服务后进入下一个从服务器工作流程,可以实现在不影响其它业务的同时快速恢复推送服务。它业务的同时快速恢复推送服务。它业务的同时快速恢复推送服务。

【技术实现步骤摘要】
基于Socket协议的分布式容器集群数据推送方法和系统


[0001]本公开涉及数据处理
,尤其涉及通信
,具体涉及一种基于Socket协议的分布式容器集群数据推送方法和系统。

技术介绍

[0002]Socket协议是计算机之间进行通信的一种约定或一种方式。通过Socket协议这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。基于Socket协议的服务端和客户端之间建立连接后,双方可通过该连接持续发送数据,无需多次在服务端和客户端之间创建连接。集群是指将多台服务器集中起来一起提供服务,相比一台服务器,集群可以提供更高的服务承载量;分布式是指将作业按业务进行拆分,运行于不同的服务器上;分布式集群是指将不同的业务进行拆分后分别由多台服务器按照一定的逻辑协作运行;分布式容器集群是指在分布式集群的基础上,将所有业务进行容器化部署。
[0003]目前在容器化分布式环境中基于Socket协议的数据推送服务,需要依靠容器化自身故障检测机制或人工监控来判断数据推送服务是否正常运行。当发现服务异常后,多数会采用自动重启服务或各节点尝试重新创建Socket连接的方案来恢复数据推送服务。但是,采用上述方案会存在推送服务发生异常后,重启服务容易影响其他目标源的数据推送,从而降低数据推送效率。

技术实现思路

[0004]本公开提供了一种基于Socket协议的分布式容器集群数据推送方法和系统。
[0005]根据本公开的第一方面,提供了一种基于Socket协议的分布式容器集群数据推送方法。该方法包括:
[0006]分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态,并进入第一从服务器工作流程;所述第一从服务器工作流程包括:
[0007]当第一从服务器的工作状态为在线状态时,主服务器从Redis中查询第一从服务器最后一次消费的数据点位i,i为大于等于2的正整数;
[0008]主服务器广播消息,通知第一从服务器开始任务;
[0009]第一从服务器收到开始任务的消息后,将从数据点位i开始消费消息;
[0010]第一从服务器从数据来源获取到数据后,将记录数据点位i;
[0011]第一从服务器将数据使用Socket通道推送至Socket目标端;
[0012]第一从服务器根据推送结果判断本次数据推送是否正常;
[0013]若第一从服务器数据推送正常,则向redis中记录数据点位i,并从数据来源中获取新的数据,进行下一次数据推送;
[0014]若第一从服务器数据推送异常,则向redis中发送第一从服务器工作异常的消息;
[0015]当主服务器接收到第一从服务器工作异常的消息后,将持续尝试重连Socket目标端;
[0016]当主服务器连接Socket目标端成功后,将再次进入下一个从服务器工作流程。
[0017]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
[0018]当第一从服务器的工作状态为离线状态时,主服务器创建第二从服务器替代第一从服务器工作;
[0019]当第二从服务器创建成功时,主服务器从Redis中查询第二从服务器最后一次消费的数据点位i;
[0020]主服务器广播消息,通知第二从服务器开始任务;
[0021]第二从服务器收到开始任务的消息后,将从数据点位i开始消费消息第二从服务器从数据来源获取到数据后,将记录数据点位i;
[0022]第二从服务器将数据使用Socket通道推送至Socket目标端;
[0023]第二从服务器根据推送结果判断本次数据推送是否正常;
[0024]若第二从服务器数据推送正常,则向redis中记录数据点位i,并从数据来源中获取新的数据,进行下一次数据推送;
[0025]若第二从服务器数据推送异常,则向redis中发送第二从服务器工作异常的消息;
[0026]当主服务器接收到第二从服务器工作异常的消息后,将持续尝试重连Socket目标端;
[0027]当主服务器连接Socket目标端成功后,将再次进入下一个从服务器工作流程。
[0028]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态包括:
[0029]分布式容器集群中主服务器监控数据推送任务的状态;
[0030]当主服务器接收到启动任务指令时,主服务器从redis获取分布式容器集群中第一从服务器的工作状态。
[0031]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述主服务器从Redis中查询第一从服务器最后一次消费的数据点位i之后,所述方法还包括:
[0032]第一从服务器从数据点位i

1开始获取数据来源中的数据。
[0033]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态之前,所述方法还包括:
[0034]分布式容器集群中所有服务器在同一时刻触发判断主服务器正常状态的工作流程;所述判断主服务器正常状态的工作流程包括:
[0035]所有服务器尝试在Redis中获取主服务器的状态信息;
[0036]若在Redis中获取主服务器的状态信息,则确定分布式容器集群中主服务器为正常状态。
[0037]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态之前,所述方法还包括:
[0038]若在Redis中未获取主服务器的状态信息,则触发主服务器选举的工作流程;
[0039]所述主服务器选举的工作流程包括:
[0040]分布式容器集群中所有服务器在同一时刻尝试向Redis中存放相同的key,并确定首个将key存放至redis中的服务器为主服务器,其它服务器为从服务器。
[0041]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态之前,所述方法还包括:
[0042]从服务器上报服务器工作状态至Redis,以使Redis记录从服务器在线状态。
[0043]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态之前,所述方法还包括:
[0044]从服务器从Redis获取其他服务器的状态信息。
[0045]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述数据来源为Kafka消息队列。
[0046]根据本公开的第二方面,提供了一种基于Socket协议的分布式容器集群本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Socket协议的分布式容器集群数据推送方法,其特征在于,包括:分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态,并进入第一从服务器工作流程;所述第一从服务器工作流程包括:当第一从服务器的工作状态为在线状态时,主服务器从Redis中查询第一从服务器最后一次消费的数据点位i,i为大于等于2的正整数;主服务器广播消息,通知第一从服务器开始任务;第一从服务器收到开始任务的消息后,将从数据点位i开始消费消息;第一从服务器从数据来源获取到数据后,将记录数据点位i;第一从服务器将数据使用Socket通道推送至Socket目标端;第一从服务器根据推送结果判断本次数据推送是否正常;若第一从服务器数据推送正常,则向redis中记录数据点位i,并从数据来源中获取新的数据,进行下一次数据推送;若第一从服务器数据推送异常,则向redis中发送第一从服务器工作异常的消息;当主服务器接收到第一从服务器工作异常的消息后,将持续尝试重连Socket目标端;当主服务器连接Socket目标端成功后,将再次进入下一个从服务器工作流程。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当第一从服务器的工作状态为离线状态时,主服务器创建第二从服务器替代第一从服务器工作;当第二从服务器创建成功时,主服务器从Redis中查询第二从服务器最后一次消费的数据点位i;主服务器广播消息,通知第二从服务器开始任务;第二从服务器收到开始任务的消息后,将从数据点位i开始消费消息第二从服务器从数据来源获取到数据后,将记录数据点位i;第二从服务器将数据使用Socket通道推送至Socket目标端;第二从服务器根据推送结果判断本次数据推送是否正常;若第二从服务器数据推送正常,则向redis中记录数据点位i,并从数据来源中获取新的数据,进行下一次数据推送;若第二从服务器数据推送异常,则向redis中发送第二从服务器工作异常的消息;当主服务器接收到第二从服务器工作异常的消息后,将持续尝试重连Socket目标端;当主服务器连接Socket目标端成功后,将再次进入下一个从服务器工作流程。3.根据权利要求1所述的方法,其特征在于,所述分布式容器集群中主服务器从redis获取分布式容器集群中第一从服务器的工作状态包括:分布式容器集群中主服务器监控数据推送任务的状态;当主服务器接收到启动任务指令时,主服务器从redis获取分布式容器集群中第一从服务器的工作状态。4.根据权利要求1所述的方法,其特征在于,在所述主服务器从Redis中查询第一从服务器最后一次消费的数据点位i之后,所述方法还包括:第一从服务器从数据点位i

1开始获取数据来源中的数据。5.根据权利要求...

【专利技术属性】
技术研发人员:李海东朱龙文程揭章张海陆高玉坤
申请(专利权)人:中科星图智慧科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1