kafka学习
一只不秃头的小菜鸟
路漫漫其修远兮
展开
-
Kafka学习笔记十一:kafka监控平台kafka-eagle的搭建和使用
1.下载压缩包Download - EFAK2.解压# tar -zxvf kafka-eagle-bin-2.0.9.tar.gz3.修改环境变量#路径为解压路径export KE_HOME=/usr/local/software/kafka-eagle-bin-2.0.9/efak-web-2.0.9export PATH=$PATH:$KE_HOME/bin让配置生效# source /etc/profile4.修改kafka-eagle的配置原创 2022-01-17 01:00:00 · 776 阅读 · 2 评论 -
Kafka学习笔记十:kafka优化
1.如何防止消息丢失发送方:使用同步发送,ack是1或者-1/all可以防止消息丢失,并且设置同步的分区数>=2(如果要做到99.9999%,ack设置成all,把min.insync.replicas配置成分区备份数) 消费方:把自动提交改为手动提交2.如何防止消息重复消费在消费者端解决消费的幂等性问题在mysql表中创建一个联合主键 使用分布式锁 redisson.lock()3.如何做到顺序消费发送方:将ack不能设置为0,关闭重试,使用同步发送,等到发送成功再发原创 2022-01-17 00:45:00 · 508 阅读 · 0 评论 -
Kafka学习笔记九:kafka集群中controller,rebalance,HW
1.controller集群中谁来充当controllerkafka集群中的broker在zookeeper中创建的临时序号节点,序号最小的节点(最先创建的节点)将作为集群的controller,负责管理整个集群中的所有分区和副本的状态当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本 当检测到某个分区的ISR集合发生变化时,由控制器负责通知所有broker更新其元数据信息 当使用kafka-topics.sh脚本为某个topic增加分区数量时,同样还是由控原创 2022-01-17 00:00:00 · 185 阅读 · 0 评论 -
Kafka学习笔记八:Springboot集成kafka
1.导入依赖<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>2.编写配置文件server: port: 8080#kafka配置spring: kafka: bootstrap-servers: 123.60.11原创 2022-01-15 00:45:00 · 322 阅读 · 0 评论 -
Kafka学习笔记七:消费者配置详解
1.长轮询poll消息默认情况下,消费者一次会poll条消息props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 500);代码中设置了长轮询的时间是1000毫秒while (true){ /** * poll是拉取消息的长轮询 */ ConsumerRecords<String,String> records = consumer.poll(Duration.ofMillis(100原创 2022-01-15 00:00:00 · 3765 阅读 · 0 评论 -
Kafka学习笔记六:kafka消费者自动提交和手动提交
1.提交的内容:消费者无论时自动提交还是手动提交,都需要把所属的消费组+消费的某个主题+消费的某个分区及消费的偏移量,这样的信息提交到集群的_consumer_offset主题里面2.自动提交offset(偏移量):消息poll下来之后直接提交offset到_consumer_offset主题中自动提交会丢失消息:因为如果poll下来之后 还没有消费 然后马上提交了offset 提交上去以后消费者挂了3.手动提交offset:手动同步提交:消费完消息后,调用同步提交方法,当集原创 2022-01-13 00:30:00 · 4289 阅读 · 1 评论 -
Kafka学习笔记五:kafka生产者同步和异步
生产者同步发送:如果生产者发送消息没有收到ack,生产者会阻塞,阻塞时间为3s,如果还没有收到消息,则会进行重试,会进行3次重试ack三个配置:acks = 0:表示Producer不需要等待任何broker确认收到消息的回复,就可以继续发送下一条消息,性能高。最容易丢消息 acks = 1:至少要等待leader已经成功的将数据写入本地log.但是不需要等待素有的follower是否成功写入,就可以继续发送下一条消息这种情况下,如果follower没有成功备份数据,而此时le原创 2022-01-13 00:00:00 · 1660 阅读 · 0 评论 -
Kafka学习笔记四:Java实现生产者消费者
java代码实现生产者和消费者原创 2022-01-12 01:00:00 · 182 阅读 · 0 评论 -
Kafka学习笔记三:kafka 单播和多播,broker,主题,分区,副本
1.单播消息如果多个消费者在同一个消费组,那么只有一个消费者可以收到订阅的topic中的消息./kafka-console-consumer.sh --bootstrap-server bigdata1:9092 --topic test --from-beginning --consumer-property group.id=testgroup12.多播消息不同的消费组订阅同一个topic,那么不同的消费组中只有一个消费者能收到消息。./kafka-console-con原创 2022-01-12 00:00:00 · 1590 阅读 · 0 评论 -
Kafka学习笔记二:kafka常用命令
1.创建topic# replication-factor 副本 # partitions 分区./kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 --partitions 22.发送消息./kafka-console-producer.sh --broker-list localhost:9092 --topic test3.消费消息 # 加了-原创 2022-01-11 10:26:58 · 339 阅读 · 0 评论 -
Kafka学习笔记一:Linux下安装运行kafka
1.安装需要JDK环境,先安装配置JDK上传jdk tar包 解压# tar -zxvf jdk-11.0.13_linux-x64_bin.tar.gz配置环境变量(注意JAVA_HOME的路径为解压路径)#set java envirinmentJAVA_HOME=/usr/local/software/jdk-11.0.13CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLAS原创 2022-01-11 10:19:59 · 757 阅读 · 2 评论