中间件
碧海凌云
从平凡到神奇
展开
-
kafka是如何保证消息不被重复消费的
一、kafka自带的消费机制kafka有个offset的概念,当每个消息被写进去后,都有一个offset,代表他的序号,然后consumer消费该数据之后,隔一段时间,会把自己消费过的消息的offset提交一下,代表我已经消费过了。下次我要是重启,就会继续从上次消费到的offset来继续消费。但是当我们直接kill进程了,再重启。这会导致consumer有些消息处理了,但是没来得及提交offset。等重启之后,少数消息就会再次消费一次。其他MQ也会有这种重复消费的问题,那么针对这种问题,我们需要从业务转载 2021-01-24 09:46:22 · 3810 阅读 · 1 评论 -
Spring Kafka中关于Kafka的配置参数
#################consumer的配置参数(开始)##################如果'enable.auto.commit'为true,则消费者偏移自动提交给Kafka的频率(以毫秒为单位),默认值为5000。spring.kafka.consumer.auto-commit-interval;#当Kafka中没有初始偏移量或者服务器上不再存在当前偏移量时该怎么办,默认值为latest,表示自动将偏移重置为最新的偏移量#可选的值为latest, earliest, none转载 2021-01-18 18:50:18 · 1208 阅读 · 0 评论 -
RabbitMQ的优劣势
RabbitMQ的优劣势优势:解耦,比如说系统A会交给系统B去处理一些事情,通过将A,B中间加入消息队列,A将要处理的事情交给消息队列 ,B的输入来源于与消息队列有序性。先来先处理,比如一个系统处理某件事需要很长一段时间,但是在处理这件事情时候,有其他人也发出了请求,可以把请求放在消息队里,一个一个来处理消息路由:按照不同的规则,将队列中消息发送到不同的其他队列中异步处理: 处理一件事情,需要 甲先做A , 然后做乙丙丁分别处理B C D ,B C D这三件事情在A之后,但是相互之转载 2020-12-01 20:31:49 · 313 阅读 · 0 评论