栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka从入门到精通

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/758027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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