Kafka入门(一)

在这里插入图片描述

1、Kafka简介

Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域(hadoop集群)、物联网领域。其主要设计目标如下:

  1. 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级别以上数据也能保证常数时间的访问性能;
  2. 高吞吐率,即使在非常廉价的机器上也能做到单机支持每秒100K条消息的传输;
  3. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输,同时支持离线数据处理和实时数据处理;

2、Kafka应用场景

Kafka本质上是一个消息队列(MQ,Message Queue),使用消息队列解决的问题或场景如下:

  1. 解耦:允许我们独立修改队列两边的处理过程而互不影响;
  2. 冗余:有些场景,我们在处理数据的过程中会失败造成数据丢失。消息队列把数据进行持久化直到它们以及被完全处理,降低了数据丢失的风险,确保数据被安全的保存直到使用完成;
  3. 峰值处理能力:不会因为突发的流量请求导致系统崩溃,消息队列能够使服务顶住突发的访问压力,有助于解决生成消息和消费消息的处理速度不一致的情况;
  4. 异步通信:消息队列允许用户把消息放入队列但不立即处理它,等待后续进行消费处理;

3、Kafka专业术语

下面为Kafka的一些重要术语,让大家对Kafka有个整体的认识和感知:

  1. Producer:即消息生产者,向Kafka Broker发消息的客户端;
  2. Consumer:即消息消费者,从Kafka Broker读取消息的客户端;
  3. Consumer Group:即消费者组,消费者组内的每个消费者负责消费不同分区的数据,以提高消费能力。一个分区只能由组内一个消费者消费,不同消费者组之间互不影响;
  4. Borker:一台Kafka机器就是一个Broker,一个集群是由多个Broker组成的且一个Broker可以容纳多个Topic;
  5. Topic:可以简单理解为队列,Topic将消息分类,生产者和消费者面向的都是同一个Topic;
  6. Partition:为了实现Topic扩展性,提高并发能力,一个大的Topic可以分布到多个Broker上,一个Topic可以分为多个Partition进行存储,每个Partition是一个有序队列;
  7. Replica:即副本,为实现数据备份的功能,保证集群中的某个节点发生故障时,该节点上的Partition数据不能丢失,且Kafka仍然能够继续工作,为此Kafka提高了副本机制,一个Topic的每个Partition都有若干个副本,一个Leader副本和若干个Follwer副本;
  8. Leader:即每个分区多个副本的主副本,生产者发送数据的对象,以及消费者消费数据的对象都是Leader;
  9. Follwer:即每个分区多个副本的从副本,会实时从Leader副本中同步数据,并保持和Leader数据同步。Leader发送故障时,某个Follwer还会被选举并成为新的Leader,且不能跟Leader在同一个broker上,防止崩溃时数据可恢复;
  10. Offset:消费者消费消息的位置信息,监控数据消费到什么位置,当消费者挂掉再重新恢复的时候,可以从消费位置继续消费;
  11. ZooKeeper:Kafka集群能够正常工作的基础,Zookeeper帮助Kafka存储和管理集群元数据信息。在最新版本中,以及慢慢要脱离Zookeeper;
  12. record:实际写入 Kafka 中并可以被读取的消息记录。每个 record 包含了 key、value 和 timestamp;

在这里插入图片描述

4、小结

上面总结了Kafka的一些基础内容,下一篇继续分析、总结和分享Kafka的工作进程、存储机制等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值