【技术实现步骤摘要】
一种基于kafka的生产消费同一数据的有序处理方法及系统
本专利技术涉及数据处理
,更具体的说,本专利技术涉及一种基于kafka的生产消费同一数据的有序处理方法及系统。
技术介绍
Kafka是一个分布式流平台,通过解耦数据流,可做到在需要时使用数据。在不需要缓慢集成的情况下,Kafka可将延迟(或每个数据点加载所需的时间)减少到仅10毫秒(与其他集成相比减少约10倍或更多),以此保障其低延迟、高吞吐的性能,即Kafka可实时地提供数据。Kafka也具备高横向扩展性,支持分布式部署,每一条消息都有一个Topic,每个Topic对应多个Partition分区,消费端均采用多线程消费。任何同一Partition分区的消息处理后并提交Offset,可以确定一条在该Partition分区下的唯一消息,在Partition分区下面可保证有序性,但对于Topic不能确保消息的有序性。同一业务主键的增删改操作会在Kafka上产生多条数据,这些数据会被随机(Kafka默认机制)发送到不同的Partition分区中,最终会 ...
【技术保护点】
1.一种基于kafka的生产消费同一数据的有序处理方法,其特征在于:该方法包括kafka生产端有序推送的步骤和kafka消费端有序消费的步骤,其中,kafka生产端有序推送的步骤包括:/nS1、多个应用端按事务提交消息到Oracle数据库,OGG同步程序监控Oracle数据库的消息变化,将监控到的消息队列,按事务分配OGG同步程序上的不同进程处理;/nS2、重写OGG的处理逻辑,得到业务主键对应的partition分区数N;/nS3、重写发送的自定义分区,将同一业务主键计算的N值发送到对应的第N个partition分区中;/nS4、同一个OGG线程处理同一个事务,一个事务中 ...
【技术特征摘要】
1.一种基于kafka的生产消费同一数据的有序处理方法,其特征在于:该方法包括kafka生产端有序推送的步骤和kafka消费端有序消费的步骤,其中,kafka生产端有序推送的步骤包括:
S1、多个应用端按事务提交消息到Oracle数据库,OGG同步程序监控Oracle数据库的消息变化,将监控到的消息队列,按事务分配OGG同步程序上的不同进程处理;
S2、重写OGG的处理逻辑,得到业务主键对应的partition分区数N;
S3、重写发送的自定义分区,将同一业务主键计算的N值发送到对应的第N个partition分区中;
S4、同一个OGG线程处理同一个事务,一个事务中的数据发送到固定的partition分区上;
kafka保证单独的partition分区数据有序性,通过步骤S3中的自定义分区处理后生产的数据和消费队列在kafka上是全局有序的。
2.根据权利要求1所述的一种基于kafka的生产消费同一数据的有序处理方法,其特征在于:所述的kafka消费端有序消费的步骤包括:
S5、消费端连接至kafka,批量拉取对应topic的消息队列;
S6、起多线程消费,线程数与对应topic的partition分区数据相同;
S7、由于partition分区中的消息队列为有序的,因此消费端的单线程消费也是有序的。
3.根据权利要求1所述的一种基于kafka的生产消费同一数据的有序处理方法,其特征在于:所述的步骤S1中,OGG同步程序将消息队列,按事务平均分配OGG同步程序上的不同进程处理。
4.根据权利要求1所述的一种基于k...
【专利技术属性】
技术研发人员:夏菊平,刘跃红,李雨峰,曹浩,
申请(专利权)人:银盛支付服务股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。