MQkafka
2022-02-22 17:48:14 1 举报
AI智能生成
kafka
作者其他创作
大纲/内容
kafka
① 使用场景
日志收集
消息系统
用户活动跟踪
运营指标
② 基本概念
Broker
Topic
Producer
Consumer
ConsumerGroup
Partition
TCP协议
③ 基本使用
安装
安装前准备
安装JDK
安装Zookeeper
下载安装包
单机
修改配置
核心配置
broker.id
log.dirs
listeners
zookeeper.connect
log.retention.hour
num.partitions
default.replication.factor
min.insync.replicas
delete.topic.enable
启动服务
nohup bin/kafka-server-start.sh config/server.properties &
在zookeeper节点上可以查看相关信息
停止服务
bin/kafka-server-stop.sh
集群
修改配置文件
启动对应配置文件的服务
启动之后,在zookeeper的/broker/ids上查看相关信息
创建主题
bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
查看主题
查看主题列表
bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181
查看单个主题
bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic test-1
删除主题
bin/kafka-topics.sh --delete --topic test --zookeeper 127.0.0.1:2181
发送消息
单机发送
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
集群发送
bin/kafka-console-producer.sh --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test
消费消息
单机消费
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test
集群消费
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094 --topic test
消费多主题
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --whitelist "test|test-2"
消费之前的消息
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic test-2
单播消费
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --consumer-property group.id=testGroup --topic test
多播消息
创建多个消费者组来消费消息
查看消费者组名
bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list
查看消费组的消费偏移量
bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group testGroup
④ java使用
普通java工程
引入maven依赖
消息发送端代码
消息消费端代码
集成SpringBoot
引入依赖
application.yml
发送者代码
消费者代码
⑤ 存储日志
主题日志
没有分区
以主题名为文件夹
有分区
主题名-分区编号为文件夹
⑥ kafka管理工具kafka-manager
https://www.cnblogs.com/dadonggg/p/8205302.html
⑦ 线上问题及优化
消息丢失情况
消息发送端
acks=0
acks=1
acks=-1或all
消息消费端
消息重复消息
发送端配置重试机制,会导致重复发送
消费端自动提交,会导致重复消费
消息乱序
发送端重试机制,会导致乱序
消息积压
转移消息到其他Topic
转移到私信队列
延时队列
可以设置不同的topic,拉取消息的时候判断发送时间和消费时间
消息回溯
用consumer指定offsetsForTimes,seek等偏移量来消费
合理设置分区数
bin/kafka-producer-perf-test.sh --topic test --num-records 1000000 --record-size 1024 --throughput -1 --producer-props bootstrap.servers=45.116.80.126:9092 acks=1
消息传递保障
生产者幂等性
props.put(“enable.idempotence”, true)
kafka的事务
高性能的原因
磁盘顺序读写
数据传输的零拷贝
读写数据的批量batch处理以及压缩传输
0 条评论
下一页
为你推荐
查看更多
抱歉,暂无相关内容