kafka
vickyhwj
这个作者很懒,什么都没留下…
展开
-
rocketmq是如何消费
删除msgTreeMap消费过的消息,返回剩下最小的offset,并且把它设置为后面要异步提交的offset。然后消费拉取回来的消息,以并行消费为例,把拉取数量为pullBatchSize的消息,以每批consumeMessageBatchMaxSize,分成若干批。如果是有序消费,先从msgTreeMap poll前consumeBatchSize的消息,然后通过上锁,使得相同队列的不同批次消费串行进行。拉取消息成功后设置下一次需要拉取的offset,然后扔进消费线程池里消费。原创 2022-10-27 16:57:42 · 549 阅读 · 0 评论 -
kafka消费的细节
猜想,每次获取拉取消息的response应该会含有下一次 需要我们传的offset,然后更新到TopicPartitionState,我们下次拉取消息是通过TopicPartitionState获得要传的offset。kafka每次去poll消息,向服务端传topic-分区号,offset(开始的offset),maxBytes(最大字节数)每次poll,获取records后,会把position设为最后的那个record的offset,如果消费代码是。如果想每消费一条,就提交一条,就要。原创 2022-10-27 10:13:05 · 616 阅读 · 0 评论 -
多线程能否提高jdbc插入速度?
结论:不使用批量插入的话,多线程确实能提高插入速度,如果使用批量插入,单线程多线程都差不多(其实和kafka批量提交差不多)。如果不用批量插入(batchSize=1),插入400000行。原创 2022-09-29 17:54:25 · 859 阅读 · 0 评论 -
kafka手动提交无限重试
对于一些很强调分区内有序,并且0丢失的场景,比如增量同步数据,(先insert再delete,先delete再insert,结果是不一样的,又或者用了唯一索引,然而delete失败了,消息丢失了,后面的插入唯一性冲突了),解决方案是无限重试,失败了发送信息通知。 @KafkaListener(topics = {"cgbOrderDetail"},groupId = "c2",concurrency ="5",containerFactory = "kafkaListenerContainerFact原创 2021-04-21 19:24:00 · 2127 阅读 · 0 评论 -
kafka重置指定分区的消费offset
bin/kafka-consumer-groups.sh --bootstrap-server weblogic:9092 --group t --reset-offsets --topic test:0 --to-offset 2 --execute分区号原创 2020-12-23 14:41:00 · 962 阅读 · 0 评论