kafka windows linux 下搭建 和java springboot 连接
基础结构和术语
https://www.cnblogs.com/frankdeng/p/9310684.html
单机版
https://blog.csdn.net/cold___play/article/details/132398946
win下的集群搭建 当然。。是伪集群...
ZK所有的服务器都指向本机,kafka所有的服务器都指向本机..
版本
linux:centos7
kafka-server :2.12-2.50
kafka-client:2.3.1
zookeeper 3.4.6
先启动
zookeeper
再启动
kafka
WIN下的启动参数
zookeeper-server-start.bat ../../config/zookeeper.properties
kafka-server-start.bat ../../config/server.properties
遇到的问题
Windows CMD命令行解释器【输入行太长。 命令语法不正确】
- 解决办法
使用较短的文件夹和文件的名称
减少文件夹树的深度
参考的地址中说的配置port和host是kafka的老版本了
新版本配置listeners就可以了。具体可以百度一下
Linux 下的搭建
配置
server.properties
下面的两个参数都要设置成外网的,才能正常使用,不然客户端找不到kafka,谢特
listeners=PLAINTEXT://192.168.200.24:9092
advertised.listeners=PLAINTEXT://192.168.200.24:9092
启动指令
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
bin/kafka-server-start.sh -daemon config/server.properties
维护
JAVA连接
奇怪的是JAVA中的连接需要用kafka的端口而不是zookeeper的端口,但是用kafka的客户端UI管理工具又可以用zookeeper的端口去连接。。
springboot 目前的配置
重置offset
三种方法
1、新建一个组消费
2、JAVA指定消费的offset
@KafkaListener(groupId = "topic_group_test",topicPartitions = {
@TopicPartition(topic = "topic_test",partitionOffsets = @PartitionOffset(partition = "0", initialOffset = "9830"))
})
public void topicConsumer(ConsumerRecord<?, ?> record, Acknowledgment ack, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {
Optional message = Optional.ofNullable(record.value());
if (message.isPresent()) {
Object msg = message.get();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
log.info("Kafka消费者topic_group_test:成功获取到数据: Topic = {}, Message = {}", topic, msg);
//TODO 单条数据处理.....
ack.acknowledge();
}
}
3、kafka服务器操作
1、## 详情通过help 命令查看
## all topic 重置到最早消费进度
kafka-consumer-groups.sh --bootstrap-server 10.202.13.27:9092 --group cjw --reset-offsets --all-topics --to-earliest --execute
##指定主题
kafka-consumer-groups.sh --bootstrap-server 10.202.13.27:9092 --group cjw --reset-offsets --topic cjw-test --to-earliest --execute
##指定偏移量
kafka-consumer-groups.sh --bootstrap-server 10.202.13.27:9092 --group cjw --reset-offsets --topic cjw-test --to-offset 2 --execute
##指定主题、分区、消费偏移
./kafka-consumer-groups.sh --bootstrap-server 192.168.200.24:9092 --group g1 --reset-offsets --topic sys_log:0 --to-offset 1 --execute
2、Error: Assignments can only be reset if the group ‘logstash_kafka_group’ is inactive, but the current state is Stable
简单的说就是,相同的 group 有其他的 topic 正在使用和消费,那么这个 group 是出于 active 状态。出于 active 状态的 group 的任何 topic 的 offset 是不能够被 reset 的。
3 停止 logstash消费任务,或者其他消费任务
4、重新执行
9reset_kafka_lag.sh logstash_kafka_group log-a
Error: Assignments can only be reset if the group ‘logstash_kafka_group’ is inactive, but the current state is PreparingRebalance.
GROUP TOPIC PARTITION NEW-OFFSET
logstash_kafka_group log-group 0 923424362
logstash_kafka_group log-group 1 213391942
logstash_kafka_group log-group 2 1034276461
[root@log-kafka7 ~]# sh log-group.sh
5、清理
Consumer group ‘logstash_kafka_group’ has no active members.
logstash_kafka_group log-group 1 213391942 213393406 1464 – – –
logstash_kafka_group log-group 0 923424362 923433192 8830 – – –
logstash_kafka_group log-group 2 1034276461 1034284424 7963 – – –
6、cat 9reset_kafka_lag.sh
export JAVA_HOME=/jesong/jdk1.8.0_251
export PATH=$PATH:$JAVA_HOME/bin
if [ -z $2 ];then
echo Usage $0 groupname
exit 0;
fi
group=$1
topic=$2
IP=$(ifconfig eth0|grep inet|awk ‘{print $2}’|head -1)
cd /jesong/kafka_2.13-2.6.0
./bin/kafka-consumer-groups.sh –bootstrap-server ${IP}:9092 \
–reset-offsets \
–group ${group} \
–topic ${topic} \
–to-latest \
–execute
#–to-earliest \
kafka 消息堆积慢消费问题
https://blog.csdn.net/qq_16681169/article/details/101081656
kafka系列——kafka生产中消费速度慢的问题
https://blog.csdn.net/qq_40384985/article/details/90675986
kafka指定offset进行消费,做开发测试是非常方便
@KafkaListener(groupId = "g1",topicPartitions = {
@TopicPartition(topic = "sys_log",partitionOffsets = @PartitionOffset(partition = "0", initialOffset = "0"))
})
kafka UI管理工具
EFAK
offsetExploder
springboot 连接
pom.xml
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.12</artifactId>
<version>2.5.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
yml
kafka:
consumer:
bootstrap-servers: 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
enable-auto-commit: true
group-id: ag-radar
auto-offset-reset: latest
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。