大数据开发 --- Kafka

⏳环境:window10、CentOs7、VMware15.5

📃专栏:基础知识篇(Kafka)

🎯选自:大数据开发

本专栏:主要说明一些注意点和大致步骤,不涉及具体的安装步骤,具体安装步骤网上教程很多,大家可以自行去搜索。后续有空的话,也会补全具体步骤。

kafka的配置

1.(这里以需求为3个kafka节点为例)准备3台虚拟机(hadoop1为操作机,hadoop2、hadoop3、hadoop4则为kafka安装节点机)
2.在hadoop2上安装kafka,并修改文件配置,然后,scp配置至其他两个节点;
3.配置服务端和消费端
3.1 hadoop2建立Topic,启动生产者节点;
3.2 另一个节点启动消费者节点,监听hadoop2数据变化情况;

知识点

1.消息队列:点对点(P2P)、发布订阅(Pub/Sub).
2.什么是kafka:发布订阅类型
高吞吐量:数据放在磁盘,但是利用磁盘的顺序读写速度超过内存的随机读取特性。
3.Kafka主要用在实时计算领域,可以和Flume、Spark、Flink等框架结合在一起使用。

存储策略

两大法宝:分段+索引
Topic >> Partitions >> Segment(往后添加,不满直接添加,满则创建新片段后添加)

容错机制

1.当kafka集群的一个Broker节点宕机,会出现什么现象?
影响不大,就集群会重新选举leader节点。
-----|-----
2.当kafka集群新增一个Broker节点,会出现什么现象?
Zookeeper会自动识别,并在适当的机会选择此节点提供Leader服务。
-----|-----
3.新启动的节点不会是任何分区的Leader,怎么重新均匀分配?
默认自动均匀配置策略,开启配置,auto.leader.rebalance.enable=True;

问题

1.Kafka的数据是存储在磁盘中的,为什么可以满足每秒百万级别消息的生产和消费?

虽说kafka数据存储在磁盘中的,但是他利用磁盘的顺序读写速度超过内存的随机读取特性,实现了高吞吐量的特性。

2.如何保证Kafka数据不丢失?从生产者和消费者两方面进行分析

生产者:
总结以上,可以得知生产者在推送消息时,依靠的是ISR、ACK机制、以及三种语义来达到不同情况的消息准确性。
所以总的过程应该是这样的: producer 向指定的 topic和partition发送数据, topic 的每个 partition 收到producer 发送的数据后,(下一步是等待ISR的follower同步完成,这一步会根据ack的参数配置[0,1,-1],确定具体的ack返回时机),该分区的leader向 producer 发送 ack(acknowledgement: 确认收到),如果producer 收到 ack, 就会进行下一轮的发送,否则重新发送数据。
消费者:
通过offset commit 来保证数据的不丢失,kafka自己记录了每次消费的offset数值,下次继续消费的时候,会接着上次的offset进行消费

3.Kafka如何保持数据一致性和可靠性?

(1)数据一致性的定义:
(2)可靠性是指:
(3)如何保证数据的可靠性:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值