Kafka学习要点记录

kafka基本原理

kafka通过将broker集群将生产者producer和消费者consumer解耦分离,并通过采用不同的消息消费机制实现队列消息模式和发布订阅模式,其重要术语概念如下:
topic: 消息主题,每条消息都被归为某一个topic,不同topic间的消息的生产和消费过程互不干扰,同一topic消息的生产顺序和存储顺序一致,并且消费顺序也大致一致(单一partition内顺序消费)。
partition: 消息分区,topic内部还可进一步分为多个partition,分为多个partition不仅可以通过partition并行消费提升吞吐量,还能将不同partition部署到不同集群节点上以提升容错性。
broker: 集群节点,kafka集群内的每个节点即为一broker。出于容错性的考虑,每个topic的分区都有一个leader broker和零到多个follower broker用于备份,分区的读写操作皆由leader broker处理,followers就如普通的consumer一样从leader拉去消息并存储到自己的日志中,当leader挂掉以后,众多followers便会选举出一个新的leader,使消息服务能继续使用。kafka将不同partition的leader均匀地分布在不同broker中,从而降低一个节点宕机造成的影响。
producer: 消息的生产者,向某个topic内写入消息,kafka会负责消息写入的负载均衡,使得同一topic的消息被均匀地写入多个partition内。
consumer: 消息的消费者,kafka采用poll拉取的方式进行消息的消费,即消息的获取由consumer控制,这样消费者可以根据本地负载能力控制消费速率。
group: 不同消费者可以组成一个消费组,由groupid唯一识别,同一group内的consumer消费相同topic的消息。需要注意topic内的某一partition的消息会全部发给group组内的某一consumer,即组内partition与consumer为多对一或一对一的关系,因此组内consumer数量不能超过partition数量,否则便会有consumer一直无法获得消息。

根据不同的消费策略,kafka可分为队列消息方式和发布订阅方式:

队列消息方式: 同一group内的多个consumer都接受相同topic的消息,但发往一个group的一个消息只会被组内的一个consumer消费,若是每个consumer都属于同一个group,则所有consumer轮流接收同一topic的消息,即为队列消息方式。
发布订阅方式: 某一topic的一条消息会发给每个订阅了该topic的group,若是每个consumer都属于不同的group,则topic的消息会广播给所有订阅了该topic的consumer,即为发布订阅方式。

kafka优势

高吞吐量、低延迟: kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;
可扩展性: producer、broker 和 consumer 都会有多个,均为分布式,支持热扩展;
持久性、可靠性: 消息被持久化到本地磁盘,并且支持数据备份防止数据丢失;
容错性: 允许集群中节点故障(若副本数量为n,则允许n-1个节点故障);
高并发: 消息被消费后并不删除,而是在过期时间内持续保存,不同消费者本地存储自身的offset,不影响其他消费者消费消息,支持数千个客户端同时读写。

kafka应用场景

日志收集: 一个公司可以用Kafka收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer;
消息系统: 解耦生产者和消费者、缓存消息等;
用户活动跟踪: kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后消费者通过订阅这些topic来做实时的监控分析,亦可保存到数据库;
运营指标: kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;
流式处理: 作为大数据流式计算的source或sink。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值