IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> kafka(一)kafka的基础与常用配置 -> 正文阅读

[大数据]kafka(一)kafka的基础与常用配置

一、kafka基础内容

先了解下基础的概念
主题(Topic)
主题是承载消息的容器,我们发布与订阅的对象就是主题,在实际的应用中通常会按照业务去划分不同的主题。

分区(Partition)
每个主题可以有多个分区,分区数量可以在创建主题时定义。
消息位移(Offset)表示每个分区中每条消息的位置信息,是一个单调递增且不变的值。

副本(Replica)
顾名思义是同一条消息的备份数据存放的地方。kafka的副本分为领导者副本和追随者副本。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。

生产者(Producer)
向主题发布新消息的应用。

消费者(Consumer)
从主题订阅新消息的应用。

集群节点(Broker)
一个kafka集群由一个或者多个broker组成,集群的基本组成单位

消费者组(Consumer Group)
多个消费者实例共同组成的一个组,每个组中的实例只能消费一次消息。

重平衡(Rebalance)
消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

说完了基础的概念,那么kafka是怎么通过以上的模块进行运作的呢?
首先,kafka的发布与订阅都是针对于topic来说的,不同的应用程序,producer创建的数据与cunsumer的消费数据都是通过topic来进行生产与消费。
kafka会将topic分成多个partition,存放于不同的broker的目录中,这其中的目的有很多,比如说为了水平扩展提升性能,为了数据的不丢失等。producer产生的每个消息都会通过不同的负载均衡策略发送到不同的partition中去。
对于partition来说,他是需要设置不同的副本的,每个partition必须要有一个领导者副本和多个追随者副本。领导者副本是对外提供数据,追随者副本仅仅用于做数据备份。而Offset则是表明当前副本已经消费到的位置。
最后,如果消费者组有实例挂掉了,那么kafka会自动触发重平衡。

二、kafka 中重要的参数配置

2.1、log.dirs

Broker 中存放数据的目录集合。
通过这个参数可以配置多个数据存放目录。为什么要配置多个目录,目的是为了实现故障转移。

2.2、unclean.leader.election.enable

是否允许 Unclean Leader 选举。
正常的生产配置中,这个参数是配置成fasle的。上文有说道partition中有分领导者副本和追随者副本,这个参数就是为了在领导者副本挂了的时候起作用的。所谓的Unclean副本,指的就是落后于领导者副本进度过多的副本,没有处于In-sync Replicas副本集合中(这块内容后续分析)。如果配置成ture,一旦unclean副本竞选领导者副本成功了,那么kafka有可能会丢失数据。

2.3、message.max.bytes

Broker 能够接收的最大消息大小
这个没啥好说的,消息队列不适合传输bigdata。

2.4、request.required.acks = 0、1和-1(all)

acks=0

Producer把消息发送出去,不需要等待任何确认收到的消息,生产者觉得自己发送成功了,但是实际上消息有可能因为kafka挂了而丢失了。保证了高性能,但是数据的可靠性得不到保障。

acks=1(默认)

Producer把消息发送出去,至少要等待领导者副本已经成功将数据写入本地log,但是并没有等待所有追随者副本是否成功写入。该情况下,如果follower没有成功备份数据,而此时leader刚好又挂掉了,就会导致消息丢失。

acks=-1/all

Producer把消息发送出去,这要求isr副本集合中所有的副本都与领导者副本同步了消息,才能认为这条消息是写入成功的。牺牲了性能但是保证了数据的可靠性。

2.5、min.insync.replicas

isr最小副本数,默认值是1。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:44:36  更:2021-09-22 14:46:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:59:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码