kafka消费者kafka-console-consumer接收不到数据的解决
作者:k55 发布时间:2022-04-26 06:05:42
kafka消费者kafka-console-consumer接收不到数据
发送端
接收端
问题
采用内置的zookeeper,发送端发送数据,接收端能够接收数据
但是采用外置的zookeeper,发送端发送数据,接收端一直接收不到数据
解决
先判断主题是否一致,如果一致就在关闭kafka
./kafka-server-stop.sh ../config/server.properties
修改一下配置,确保这些配置已加上,不要用localhost,在listeners的ip地址和端口号要和消费者,生产者的的地址端口号一直
vim ../config/server.propertiesst3
最后把log.dirs后面的文件删除或者重新换个地址
rm -rf /tmp/kafka
重新在前台启动kafka,注意查看打印在桌面的日志,有无报错信息
./kafka-server-start.sh ../config/server.properties
如果没有报错信息,启动正常,那么就可以在后台启动了
./kafka-server-start.sh -daemon ../config/server.properties
创建生产者
./kafka-console-producer.sh --broker-list 172.16.193.175:9092 --topic test3
创建消费者
./kafka-console-consumer.sh --bootstrap-server 172.16.193.175:9092 --topic test3 --from-beginning
关于kafka-console-consumer.sh消费者的一些思考
(人物设定初步了解kafka的我)
我司现在有三台kafka服务器作为一个集群
需求是我写了一个 * 去监听活动失败的情况,如果活动失败则调用一个统计接口 做数据统计
我需要从失败事件的随路数据中取一些数据,做一些判断.
现在我想从集群中看一下失败事件中的随路数据是否完整正确
于是,我xshell连接上了三台服务器并且运行以下命令
./kafka-console-consumer.sh --bootstrap-server broker1IP:9092 --topic topicname
./kafka-console-consumer.sh --bootstrap-server broker2IP:9092 --topic topicname
./kafka-console-consumer.sh --bootstrap-server broker3IP:9092 --topic topicname
发现只要发送一个事件三个服务器都可以收到事件中的消息
怪了,为什么三台都会显示.
我第一反应是:这是否是传说中的leader和follower 同步策略
我问了一下我的leader ,
leader:.....,你知道你这个命令是什么意思吗?
这个命令就是相当于创建了一个消费者去消费了队列中的消息!
你这个3个服务器相当于启动了3个消费者去消费了,同一个消息三次!
我:不对啊,同一个消息不能被消费三次啊!?
leader:........,你知道什么是消费者组吗?你这相当于三个消费者组 不信你看看
./kafka-console-consumer.sh -help
...
--group <String: consumer group id> The consumer group id of the consumer.
...
看到了么?这里可以指定消费者组,你不指定他就默认是一个新的消费者组
我: 牛啊!
kafka-console-consumer.sh相关知识拓展
kafka-console-consumer.sh脚本是一个简易的消费者控制台。该 shell 脚本的功能通过调用 kafka.tools 包下的 ConsoleConsumer 类,并将提供的命令行参数全部传给该类实现。
./kafka-console-consumer.sh --bootstrap-server node:9092 --topic topicName
//表示从 latest 位移位置开始消费该主题的所有分区消息,即仅消费正在写入的消息。
bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --from-beginning --topic topicName
// 表示从指定主题中有效的起始位移位置开始消费所有分区的消息。
bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --property print.key=true --topic topicName
// 消费出的消息结果将打印出消息体的 key 和 value。
参数 | 值类型 | 说明 | 有效值 |
---|---|---|---|
--topic | string | 被消费的topic | |
--whitelist | string | 正则表达式,指定要包含以供使用的主题的白名单 | |
--partition | integer | 指定分区 除非指定’–offset’,否则从分区结束(latest)开始消费 | |
--offset | string | 执行消费的起始offset位置 默认值:latest | |
--from-beginning | 从存在的最早消息开始,而不是从最新消息开始 | ||
--max-messages | integer | 消费的最大数据量,若不指定,则持续消费下去 | |
--timeout-ms | integer | 在指定时间间隔内没有消息可用时退出 | |
--bootstrap-server | string | 必需(除非使用旧版本的消费者),要连接的服务器 | |
--key-deserializer | string | ||
--value-deserializer | string | ||
--group | string | 指定消费者所属组的ID | |
--zookeeper | string | 必需(仅当使用旧的使用者时)连接zookeeper的字符串。 可以给出多个URL以允许故障转移 |
来源:https://blog.csdn.net/k393393/article/details/93099276


猜你喜欢
- 第一节 JAVA条件语句之if语句1.单独的if语句,语法:if(条件){条件成立时执行的代码};如果if成立时执行的语句只有一条,可以省略
- 本文实例为大家分享了JavaWeb实现注册用户名检测的具体代码,供大家参考,具体内容如下案例说明实现一个可以异步获取用户名是否被注册的小案例
- VideoView介绍之前介绍过使用MediaPlayer+SurfaceView实现播放视频功能。无意间发现官方封装了VideoView组
- 一、ProgressBar1. 常用类型1.1 不确定式圆形进度条style="@android:style/Widget.Hol
- 1、接口:接口与抽象类一样,也是表示某种规则,一旦使用了该规则,就必须实现相关的方法。对于C#语言而言,由于只能继承自一个父类,因此若有多个
- 本文实例讲述了C#动态加载dll扩展系统功能的方法。分享给大家供大家参考。具体分析如下:动态加载dll,主要是为了扩展功能,增强灵活性而实现
- 用类加载器的5中形式读取.properties文件(这个.properties文件一般放在src的下面)用类加载器进行读取:这里采取先向大家
- 如何快速构建一个Spring Boot的项目工具 ideaJDK版本 1.8Spring Boot 版本 1.5.9环境搭建实现:最基础前端
- 分析代码规范,并从代码角度分析存在的风险,并且支持一键更改。具体操作如下图:简单方便,最主要的是好用!补充:下面看下IntelliJ IDE
- 1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的
- 介绍Java命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使不同的请求可以进行参数化,并支持请
- 本文实例讲述了C#实现的文件上传下载工具类。分享给大家供大家参考,具体如下:这里给出的工具类是在VS2013环境下采用C#语言实现文件上传、
- 一、常规形式1 项目结构2 配置文件及环境设置(1)配置文件# 应用服务 WEB 访问端口server.port=8080# spring
- 写在前面SpringBoot创建定时任务的方式很简单,主要有两种方式:一、基于注解的方式(@Scheduled)二、数据库动态配置。实际开发
- ArrayList的构造方法(前置知识)可快速过一些基本成员变量:// 默认初始大小private static final int DEF
- 一直想在持续集成方向学习并研究一番,近期正准备结合jmeter+ant+jenkins做自动化接口测试,在学习的同时,正好实践一番,毕竟实践
- 一、概念 工厂方法模式是类的创建模式,又叫虚
- 首先需要建立两个库进行测试,我这里使用的是master_test和slave_test两个库,两张库都有一张同样的表(偷懒,喜喜),表结构表
- 目录前言解决方案前言我们在开发Spring应用时可能会不小心注入两个相同类型的Bean,比如实现了两个相同Service接口的类,示例伪代码
- 专业的Android app开发人员会关注一些成熟的项目管理技术,以成功构建Android app,并让这个app在Google Play