买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于Spark Streaming结合Kafka确保数据零丢失的系统和方法_北京计算机技术及应用研究所_202010281180.0 

申请/专利权人:北京计算机技术及应用研究所

申请日:2020-04-10

公开(公告)日:2022-11-22

公开(公告)号:CN111526188B

主分类号:H04L67/568

分类号:H04L67/568;H04L67/1095;H04L9/40

优先权:

专利状态码:有效-授权

法律状态:2022.11.22#授权;2020.09.04#实质审查的生效;2020.08.11#公开

摘要:本发明涉及一种基于SparkStreaming结合Kafka确保数据零丢失的系统和方法,属于流式数据实时处理排序技术领域。本发明结合集群思想和SDN网络集中控制理念设计一种新的匿名通信系统,从而使匿名通信服务更加安全、可靠。基于SDN的网络体系架构提高攻击者获取用户隐私难度和网络请求响应速率;采用集群的方式和节点选择限制策略,在很大程度上避免了恶意节点注入、流量分析以及单点攻击等安全威胁,提高系统的防御能力。

主权项:1.一种基于Kafka分区技术及SparkStreamin实时流处理的系统,其特征在于,包括数据缓存模块和流计算模块,其中,所述数据缓存模块用于缓存从不同源获取到的数据,并转发给流计算模块;所述流计算模块用于在读取到数据后,对数据进行处理;所述数据缓存模块具体用于利用Kafka实现缓存从不同源获取到的数据,并转发给流计算模块,在利用Kafka实现缓存从不同源获取到的数据,并转发给流计算模块时,具体是从Kafka的数据生产端,zookeeper集群端,和数据消费端三个方面对参数进行设置以防止数据丢失;所述数据缓存模块在zookeeper集群端对参数进行设置以防止数据丢失具体为:Kafka可以保证分区消息的顺序,同一个分区,先发送到Kafka分区的消息会被先消费掉,Kafka每个主题有多个分区,每个分区有多个副本,分为一个首领副本,和其余的跟随者副本,所有的消息都是发送给首领副本的,消息消费也是从首领副本获取的,然后与其他副本同步,当首领副本不可用的时候,会选举一个跟随者副本变成首领副本,当跟随者副本与首领副本保持同步的时候,跟随者副本是同步副本,当无法同步的时候,是非同步副本,如果首领副本宕机,需要选举一个跟随者副本来作为首领,如果非同步副本作为首领时,会损失一部分数据,这种行为叫做:不完全首领选举,对于此类状况,设置一个参数**unclean.leader.election**,将该参数设置为false以制止不完全首领选举,或通过设置“最小同步副本数”为1,确保主机宕机时有1个同步副本;所述数据缓存模块在数据生产端对参数进行设置以防止数据丢失具体为:Kafka接收到消息后,返回一个ack参数,ack=1,生产者leader副本成功写入消息后,zookeeper集群端作为服务端反馈成功响应,因此将ack设置为1;所述数据缓存模块在数据消费端对参数进行设置以防止数据丢失具体为:设置手动更新偏移量,且设置为消费一批后提交,或者设置累加器,当发生异常时,把当前处理失败的偏移量提交,下次消费从提交的偏移量处开始消费;所述流计算模块具体使用KafkaDirectAPI,设置数据唯一ID,及在数据中添加分区偏移量的方法之一解决数据丢失问题;所述流计算模块使用KafkaDirectAPI的方法解决数据丢失问题时,具体方式为:KafkaDirectAPI使用SparkDrive计算下一个批处理需要处理Kafka中偏移量的范围,直接从Kafkatopic分区中消费数据;所述流计算模块使用设置数据唯一ID的方法解决数据丢失问题时,具体方式为:写入数据库的时候,采用更新语句,存在则更新,不存在则插入,此方法设置DirectDStream消费的偏移量方式;所述流计算模块使用添加分区偏移量的方法解决数据丢失问题时,具体方式为:在每条数据中添加分区的偏移量,若程序宕机,再次启动后,获得数据库中读取最新的分区偏移量信息。

全文数据:

权利要求:

百度查询: 北京计算机技术及应用研究所 基于Spark Streaming结合Kafka确保数据零丢失的系统和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。