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。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值