kafka

kafka

定义

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

Kafka 本质上是一个 消息队列,所以它具有消息队列的优点:

解耦:允许我们独立的扩展或修改队列两边的处理过程。

削峰:不会因为突发的超负荷的请求而完全崩溃,消息队列能够使关键组件顶住突发的访问压力。

异步:消息队列允许用户把消息放入队列但不立即处理它。

除此之外它还具有很多优点,如具有扩展性,可恢复性,顺序保证等。

系统架构

Broker

物理节点的名称

Topic

一张表就是一个主题,它是一个逻辑概念

Partition

topic中的数据分割为一个或多个partition,每个分区中的数据有序。

当生产者生产数据时,根据路由分配策略分配数据:

a.指定了 patition,则直接使用

b.未指定 patition 但指定 key,通过对 key 的 value 进行hash 选出一个 patition

c.patition 和 key 都未指定,使用轮询选出一个 patition

Replication,Leader和Follow

replication是partition的副本,负责数据的安全

Leader相当于主分区,负责数据的读写的。

Follower,leader的备份,所有写请求都通过Leader路由,数据变更会广播给所有Follower

Producer

数据的生产者,将产生的消息放入Topic中,根据路由放入partition中

Consumer

数据的消费者,消费者可以从broker中读取数据。消费者可以消费多个topic中的数据。

Consumer Group

多个消费者组成,消费组一组共享一个Topic,不同组可以同时消费同一个Topic

Offset

偏移量,一个消息只能被消费组消费一次,这个组需要记录当前Topic消费消息的进度(offset),特殊情况下可由客户端调整Offset的位置

Zookeeper

存储元数据信息

数据存储策略

一个Topic(逻辑概念)分为多个partition,一个分区有多个segment,一个segment包括index索引文件和log文件,索引顺序读写,默认大小为10M

生产者数据安全

ACK机制:为了保证 Producer 发送的数据,能可靠地发送到指定的 Topic

a. 0:不需要leader返回ACK,效率快但不安全

b. 1:需要leader返回ACK,效率一般,安全一般

c. -1:需要leader和follower都返回ACK,效率低但很安全

选举策略

HW

高水位线:如果主节点挂掉,无论哪个follower竞选成功都是安全的,但只有高水位线下的数据才会暴露给消费者

LEO

最大偏移量数据:每个节点都是不同的,每当重新选举之后HW-LEO的数据可能是无效数据 ,截取掉

消费者数据安全

消费方式

消费者拉取kafka的数据,根据自己的实际能力拉取数据,但需要频繁的访问Topic,为了避免一直访问并返回空数据,采用长连接 timeout,如果没有数据必须等到超时才返回空数据。

分区分配策略

RoundRobinAssignor

轮询,hash值%消费者数量

RangeAssignor

以主题为单位/消费者数量

StickyAssignor

均匀不变

Offset

生产端offset
消费端offset
checkpoint的offset
Consumer重置Offset

Kafka的事务性

幂等性

幂等,就是指多接口的多次调用所产生的结果和只调用一次是一致的。没有幂等性的情况下就会重
复发送数据,kafka的幂等性就是保证单个分区不会重复写入数据

Kafka事务

写入多个Partition要么全部成功,要么全部失败,不会出现部分成功部分失败这种情况。

kafka集成flume

flume收集数据作为生产者给kafka,kafka作为消费中间件,最后消费者来消费

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值