Kafka消费者没有收到通知的分析

  今天遇到两位三方人员跟我反馈,某微服务的异步接口功能不正常了,由于该异步接口采用Kafka异步消息的方案,对方说没有收到Kafka给消费者的通知,根据此问题,联系了相关人员进行了分析:

  (一)明确环境是否一致

  1、生产者和消费者链接Kafka的地址是否一致,初步发现A方消费者链接Kafka的地址不正确,没有与生产者链接Kafka的地址保持一致。

  2、topic和key是否都一致,初步可以确定A方消费的topic和key都是跟生产者的topic和key是一一对应的。

  (二)生产者和Kafka之间的交互

  通过生产者的日志分析,已成功将消息发生给Kafka了,并且在Kafka端也明确是接收到了次消息,所以说生产者和Kafka之间的交互是没有问题的,流程正常。

  (三)Kafka和消费者之间的交互

  1、A方消费者矫正链接Kafka的地址后进行测试,表明是可以正常接收到,到此A方消费者的问题得到了处理,就是地址不正确造成的;

  2、B方消费者暂时还没有接收到通知,经Kafka方的确认,B方消费者没有在生产者提供的topic下进行订阅,并且B方消费者在启动时也没有看到该topic的日志信息,因此Kafka方先让B方消费者修改一下topic信息和key信息,在代码中写死;B方消费者修改后进行测试,表明是可以正常接收到消息了,并且在Kafka那里也看到该topic下有B方消费者的订阅了,到此B方消费者的问题也到了处理,就是topic和key不正确造成的。

  3、后来又听B方说是bean注入的问题,指定了指定了@Qualifier()后就不能订阅了,去掉@Autowired,在构造器中new一个对象,测试正常了。

  小结:在遇到这类问题时一定要检查自身的代码,配置信息是否正常,否则这样的分析和定位都是在浪费大家的时间。

原文地址:https://www.cnblogs.com/bien94/p/12335612.html

时间: 2024-10-15 10:27:59

Kafka消费者没有收到通知的分析的相关文章

Android 4.4 Kitkat Phone工作流程浅析(九)__状态通知流程分析

本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. 前置文章: <Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划> <Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析> <Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程

Kafka消费者——结合spring开发

Kafka消费者端 可靠性保证 作为消费端,消费数据需要考虑的是: 1.不重复消费消息 2.不缺失消费消息 自动提交 offset 的相关参数: enable.auto.commit: 是否开启自动提交 offset 功能(true) auto.commit.interval.ms: 自动提交 offset 的时间间隔 (1000ms = 1s) 手动提交offset 的相关参数: enable.auto.commit: 是否开启自动提交 offset 功能(false) 异步提交也个缺点,那就

Spring整合kafka消费者和生产者&amp;redis的步骤

==================================================================================一.整合kafka(生产者)步骤1.导入依赖(pom.xml)2.编写配置文件,修改配置文件的ip和端口号,修改主题(producer.xml)3.如果再ssm项目中可以让spring.xml来加载这个配置文件 <import resource="classpath:XXX.xml" /> 如果是再测试类中如何加

kafka 消费者offset记录位置和方式

我们大家都知道,kafka消费者在会保存其消费的进度,也就是offset,存储的位置根据选用的kafka api不同而不同. 首先来说说消费者如果是根据javaapi来消费,也就是[kafka.javaapi.consumer.ConsumerConnector],我们会配置参数[zookeeper.connect]来消费.这种情况下,消费者的offset会更新到zookeeper的[consumers/{group}/offsets/{topic}/{partition}]目录下,例如: [z

Android应用程序组件Content Provider的共享数据更新通知机制分析

在Android系统中,应用程序组件Content Provider为不同的应用程序实现数据共享提供了基础设施,它主要通过Binder进程间通信机制和匿名共享内存机制来实现的.关于数据共享的另一个 话题便是数据更新通知机制了,即如果一个应用程序对共享数据做了修改,它应该如何通知其它正在使用这些共享数据的应用程序呢?本文将分析Content Provider的共享数据更新通知机制,为读者解答这个问题. Android应用程序组件Content Provider中的数据更新通知机制和Android系

确保zookeeper一定收到通知消息的方法

zookeeper能够同步同步各节点的znode数据,client可以使用getChildren,getData,exists方法在znode tree路径上设置watch,当watch路径上发生节点create.delete.update的时候,会通知到client.client可以得到通知后,再获取数据,执行业务逻辑操作. 但是因为没有消息接收后的确认机制,这个通知机制是不可靠的,也就是说znode的修改者并不知道是否所有的client都被通知到了,或者说client也不知道自己是否错过了哪

golang基础-WaitGroup、kafka消费者

kafka消费者 以下博客是通过生产者创建.发送消息至kafka 博客链接 现在我们站在消费者的角度,来进行收取消息 package main import ( "fmt" "strings" "sync" "github.com/Shopify/sarama" ) var ( wg sync.WaitGroup ) func main() { //创建消费者 consumer, err := sarama.NewConsum

一文精通kafka 消费者的三种语义

本文主要是以kafka 09的client为例子,详解kafka client的使用,包括kafka消费者的三种消费语义at-most-once, at-least-once, 和 exactly-once message ,生产者的使用等. (一) 创建topic bin/kafka-topics --zookeeper localhost:2181 --create --topic normal-topic --partitions 2 --replication-factor 1 (二)

Kafka 系列(四)—— Kafka 消费者详解

一.消费者和消费者群组 在 Kafka 中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka 之所以要引入消费者群组这个概念是因为 Kafka 消费者经常会做一些高延迟的操作,比如把数据写到数据库或 HDFS ,或者进行耗时的计算,在这些情况下,单个消费者无法跟上数据生成的速度.此时可以增加更多的消费者,让它们分担负载,分别处理部分分区的消息,这就是 Kafka 实现横向伸缩的主要手段. 需要注意的是:同一个分区只能被同一个消费者群组里面的一个消费