栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

如何使用kafka实现数据最终一致性

Java 更新时间:发布时间: 百科书网 趣学号

所有场景不用分布式事务了,生产者提交后,消费者出错,生产者是不回滚的,要回滚也是程序操作比如再操作sql去反执行一下.

配置kafka的副本数量不止1个,最好3个.

1.执行本地事务成功后,生产者发送消息

2.创建一个ListenerErrorHandler类,注意Bean的名字就定义为“listenerErrorHandler”

 

  1. 创建一个监听类继承baseKafkaConsumerListener, 并根据相关业务并且重写doProcess方法执行业务逻辑处理,成功之后返回true

    4.在Apollope配置中心配置kafka以下信息

 

kafka consumer

kafka.consumer.servers=fat01-kfk-0.lcfat.cc:9092,fat01-kfk-1.lcfat.cc:9092,fat01-kfk-2.lcfat.cc:9092
kafka.consumer.enable.auto.commit=false
kafka.consumer.session.timeout=15000
kafka.consumer.auto.commit.interval=100
kafka.consumer.auto.offset.reset=earliest
kafka.consumer.group.id=fat_sm_test_member

当concurrency = partition 的数量,最佳状态,一个消费者的线程消费一个 partition 的数据

kafka.consumer.concurrency=1
kafka.consumer.maxPollRecordsConfig=100

kafka producer

kafka.producer.servers=fat01-kfk-0.lcfat.cc:9092,fat01-kfk-1.lcfat.cc:9092,fat01-kfk-2.lcfat.cc:9092
kafka.producer.retries=1
kafka.producer.batch.size=4096
kafka.producer.linger=1
kafka.producer.buffer.memory=40960

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/274787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号