栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kafka从入门到精通

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kafka从入门到精通

一. MQ基础知识

1. 常见的MQ

Kafka, ActiveMQ, RabbitMQ, RocketMQ

在大数据场景下,主要使用Kafka,在javaee中主要采用ActiveMQ, RabbitMQ, RocketMQ

2. MQ作用

(1)削峰

(2)解耦

(3)异步

3. 消息队列的模式

(1)点对点模式

(2)发布订阅模式

二. Kafka基础架构

1. 在同一个消费者组中(每条消息只能被该组中的一个消费者消费),每个分区只能由一个固定消费者进行处理,否则后续很难维护;

2. 分区有leader和follower之分,读写只在leader副本上进行,follower副本(HA)只负责数据同步;

3. zk记录集群哪些几点上线了,记录副本的leader信息,leader选举。由于zk逐渐成为了kafka的瓶颈,去除zk是后续的方向

三. Kafka开发入门 1. 启动配置

(1)broker.id:集群中每个节点的唯一编号,不能重复

(2)log.dir:日志存储目录

(3)zookeeper.connect:zk连接信息,而且建议创建指定目录存放,否则kafka信息会打散到各个地方

2. 命令行

(1)topic:

1)create: 1个分区,3个副本

bin/kafka-topics.sh --bootstrap-server server01:8081 --topic demo --create --partitions 1 --replication-factor 3

2)list:

bin/kafka-topics.sh --bootstrap-server server01:8081 --list

3)describe:

bin/kafka-topics.sh --bootstrap-server server01:8081 --describe

4)alter: 将分区数改成3,分区数只能增加,因此如果减少的话,合并后的分区无法确定消费者的offset。副本数无法通过命令行进行修改

bin/kafka-topics.sh --bootstrap-server server01:8081 --alter --partition 3

(2)producer:

bin/kafka-console-producer.sh --bootstrap-server server01:8081 --topic demo

(3)consumer:

bin/kafka-console-consumer.sh --bootstrap-server server01:8081 --topic demo --from-beginning
3. Kafka生产者 3.1 原理

    涉及两个线程:main线程和sender线程,main线程中创建了一个双端队列RecordAccumulator,main线程将消息发送给RecordAccumulator,RecordAccumulator中的消息达到指定大小或者等待指定时长后,通过sender线程从RecordAccumulator中将消息取出来发送到Kafka broker。

   发送后,默认可以最多有5个批次的数据不进行应答,超过后不再向kafka发送数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号