所有场景不用分布式事务了,生产者提交后,消费者出错,生产者是不回滚的,要回滚也是程序操作比如再操作sql去反执行一下.
配置kafka的副本数量不止1个,最好3个.
1.执行本地事务成功后,生产者发送消息
2.创建一个ListenerErrorHandler类,注意Bean的名字就定义为“listenerErrorHandler”
- 创建一个监听类继承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



