Kafka集群的数据传送方法和装置制造方法及图纸

技术编号:15794979 阅读:114 留言:0更新日期:2017-07-10 10:41
本发明专利技术提供了一种Kafka集群的数据传送方法和装置。其中Kafka集群的数据传送方法,该方法包括:调用预设的Kafka连接状态接口,以利用Kafka连接状态接口获取Kafka集群的连接状态标识;识别连接状态标识对应的Kafka集群的数据连接状态;在数据连接状态为Kafka集群中所有服务器均无法连接的情况下,停止向Kafka集群传送数据。通过Kafka连接状态接口可以判断Kafka集群的连接状态,可以及时发现Kafka集群的异常连接情况,并停止进行数据传输,降低缓存中的本地消息队列中数据丢失的风险,从而提高了Kafka集群的可靠性。

【技术实现步骤摘要】
Kafka集群的数据传送方法和装置
本专利技术涉及数据处理,特别是涉及Kafka集群的数据传送方法和装置。
技术介绍
消息中间件是一种广泛运用在分布式系统中的用于节点间通信的软件。在大规模高并发后台服务架构体系中,KAFKA作为常用的消息中间件,应用非常广泛。Kafka是由LinkedIn公司开发并开源的消息中间件。Kafka消息中间件主要由生产者producer、代理者broker和消费者consumer组成,生产者发布消息,代理者将消息从生产者转发到消费者,消费者接收并处理消息。生产者producer和代理者broker分别作为消息的客户端和服务端。在实际运用中,一般会将多个Kafka代理者以集群的方式运行形成Kafka集群。由于每产生一条消息就进行发送需要每次建立网络连接,势必影响效率。因此Kafka的消息发送过程采取批量异步发送的方式。即在Kafka客户端中,发送到Kafka服务器的数据一般会被缓存到本地的消息队列中再批量发送到KAFKA服务器集群中,当KAFKA服务器全部当机后,被缓存到本地消息队列中的数据就存在丢失的风险。
技术实现思路
本专利技术的一个目的是要降低Kafka集群的数据丢失风险。特别地,本专利技术提供了一种Kafka集群的数据传送方法,该方法包括:调用预设的Kafka连接状态接口,以利用Kafka连接状态接口获取Kafka集群的连接状态标识;识别连接状态标识对应的Kafka集群的数据连接状态;在数据连接状态为Kafka集群中所有服务器均无法连接的情况下,停止向Kafka集群传送数据。可选地,Kafka连接状态接口按照预设的策略对Kafka集群中的服务器进行连接状态扫描,并根据扫描结果对连接状态标识进行更新。可选地,根据扫描结果对连接状态标识进行更新的步骤包括:扫描Kafka集群中是否存在服务器已断开数据连接;若是,尝试重新连接已断开数据连接的服务器,在尝试重新连接失败的情况下,判定该服务器处于无法连接状态;轮询Kafka集群中所有服务器,并在Kafka集群中所有服务器均处于无法连接状态时,对连接状态标识进行修改。可选地,连接状态标识的初始值对应的数据连接状态为Kafka集群正常提供数据服务,并且在Kafka集群中存在至少一个服务器能够数据连接或者尝试重新连接成功的情况下,检查连接状态标识是否为初始值,若否,将连接状态标识更新为初始值。可选地,在Kafka集群中所有服务器均处于无法连接状态的情况下,输出告警提示信息。可选地,在停止向Kafka集群传送数据的步骤之后还包括:暂停生成数据,并保存缓存中的数据队列。根据本专利技术的另一个方面,还提供了一种Kafka集群的数据传送装置,该装置包括:标识获取模块,配置成调用预设的Kafka连接状态接口,以利用Kafka连接状态接口获取Kafka集群的连接状态标识;标识识别模块,配置成识别连接状态标识对应的Kafka集群的数据连接状态;数据传送模块,配置成在数据连接状态为Kafka集群中所有服务器均无法连接的情况下,停止向Kafka集群传送数据。可选地,Kafka连接状态接口还配置成:按照预设的策略对Kafka集群中的服务器进行连接状态扫描,并根据扫描结果对连接状态标识进行更新。可选地,Kafka连接状态接口还配置成:扫描Kafka集群中是否存在服务器已断开数据连接;若是,尝试重新连接已断开数据连接的服务器,在尝试重新连接失败的情况下,判定该服务器处于无法连接状态;轮询Kafka集群中所有服务器,并在Kafka集群中所有服务器均处于无法连接状态时,对连接状态标识进行修改;并且在Kafka集群中存在至少一个服务器能够数据连接或者尝试重新连接成功的情况下,检查连接状态标识是否为初始值,若否,将连接状态标识更新为初始值,其中连接状态标识的初始值对应的数据连接状态为Kafka集群正常提供数据服务。可选地,上述装置还包括:提示模块,配置成在Kafka集群中所有服务器均处于无法连接状态的情况下,输出告警提示信息。本专利技术的Kafka集群的数据传送方法和装置增加了Kafka连接状态接口,利用该接口可供调用者判断Kafka集群的连接状态,可以及时发现Kafka集群的异常连接情况,并停止进行数据传输,降低缓存中的本地消息队列中数据丢失的风险,从而提高了Kafka集群的可靠性。进一步地,本专利技术的Kafka集群的数据传送方法和装置,在Kafka集群中存在服务器已断开数据连接的情况后,及时发起重新连接尝试,从而可以区分服务器是暂时失连还是出现宕机等无法提供服务严重故障,相应对Kafka集群的连接状态标识进行更新,保证了连接状态标识的准确性。根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。附图说明后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:图1根据本专利技术一个实施例的Kafka集群的数据传送装置适用的硬件架构图;图2根据本专利技术一个实施例的Kafka集群的数据传送装置的示意图;图3根据本专利技术一个实施例的Kafka集群的数据传送装置的示意图;图4是根据本专利技术一个实施例的Kafka集群的数据传送方法的示意图;以及图5是根据本专利技术一个实施例的Kafka集群的数据传送方法的流程示意图。具体实施方式本专利技术的实施例对Kafka客户端进行了修改,在Kafka客户端判断是否Kafka集群中所有的Kafka集群服务器都已经连接不上了,在出现这种情况下,向调用者反馈服务器状态,调用者可以停止向Kafka集群传送数据,最大限度的减少数据丢失的风险。图1根据本专利技术一个实施例的Kafka集群的数据传送装置200适用的硬件架构图。在本实施例中,利用Kafka的特点,实现分布式的,可划分的,多订阅者,冗余备份的持久性的服务。生产者producer、代理者(broker)和消费者consumer均为分布式架构。Kafka客户端120(producer)将产生的数据缓存至本地的消息队列通过采取批量异步发送的方式发送给KAFKA集群100(broker),KAFKA集群100包括多台服务器110。Kafka集群100可以根据业务类型将Kafka客户端120传送的数据在多台服务器110之间进行分配,服务器110可以将这些数据进行持久化操作,例如写入日志文件中,数据消费者consumer使用。在本实施例中,首次在KAFKA集群100中配置了Kafka连接状态接口,以供Kafka客户端120调用,在具有多个Kafka客户端120的情况下,KAFKA集群100可以利用统一的Kafka连接状态接口向多个Kafka客户端120分别提供Kafka集群100中服务器110的数据连接状态。图2根据本专利技术一个实施例的Kafka集群的数据传送装置200的示意图。该Kafka集群的数据传送装置200可以通过Kafka连接状态接口获取Kafka集群100的数据连接状态,并相应采取措施,减小缓存中数据丢失的风险。该Kafka集群的数据传送装置200一般性地可以包括:标识获取模块210、标识识别模块220、数据传送模块230。每个Kafka客户端本文档来自技高网...
Kafka集群的数据传送方法和装置

【技术保护点】
一种Kafka集群的数据传送方法,其特征在于包括:调用预设的Kafka连接状态接口,以利用所述Kafka连接状态接口获取所述Kafka集群的连接状态标识;识别所述连接状态标识对应的所述Kafka集群的数据连接状态;在所述数据连接状态为所述Kafka集群中所有服务器均无法连接的情况下,停止向所述Kafka集群传送数据。

【技术特征摘要】
1.一种Kafka集群的数据传送方法,其特征在于包括:调用预设的Kafka连接状态接口,以利用所述Kafka连接状态接口获取所述Kafka集群的连接状态标识;识别所述连接状态标识对应的所述Kafka集群的数据连接状态;在所述数据连接状态为所述Kafka集群中所有服务器均无法连接的情况下,停止向所述Kafka集群传送数据。2.根据权利要求1所述的方法,其特征在于所述Kafka连接状态接口按照预设的策略对所述Kafka集群中的服务器进行连接状态扫描,并根据扫描结果对所述连接状态标识进行更新。3.根据权利要求2所述的方法,其特征在于,根据所述扫描结果对所述连接状态标识进行更新的步骤包括:扫描所述Kafka集群中是否存在服务器已断开数据连接;若是,尝试重新连接已断开数据连接的服务器,在尝试重新连接失败的情况下,判定该服务器处于无法连接状态;轮询所述Kafka集群中所有服务器,并在所述Kafka集群中所有服务器均处于无法连接状态时,对所述连接状态标识进行修改。4.根据权利要求3所述的方法,其特征在于,所述连接状态标识的初始值对应的数据连接状态为所述Kafka集群正常提供数据服务,并且在所述Kafka集群中存在至少一个服务器能够数据连接或者尝试重新连接成功的情况下,检查所述连接状态标识是否为所述初始值,若否,将所述连接状态标识更新为所述初始值。5.根据权利要求3所述的方法,其特征在于,在所述Kafka集群中所有服务器均处于无法连接状态的情况下,输出告警提示信息。6.根据权利要求1所述的方法,其特征在于,在停止向所述Kafka集群传送数据的步骤...

【专利技术属性】
技术研发人员:杨玉奇杨从安张宇平
申请(专利权)人:北京数字联盟网络科技有限公司
类型:发明
国别省市:北京,11

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

1