消息队列之Kafka

什么是Kafka

消息队列的一种,类似的还有RabbitMQ,RocketMQ。

几个概念

  • 生产者:产生消息,并发送到指定主题。
  • 消费者:从主题中拉取消息并消费。
  • 主题(topic):用于管理一类消息,逻辑划分。
  • 分区:主题可以由一个或多个分区组成,这是实际的物理划分。
  • 缓存代理(broker):用来管理消息的服务器,一个主题可以有多个分区,每个分区可以分布在不同的broker上,因此一个分区也可以有多个不同主题的分区。
  • 集群:集群中包含多个broker。
  • 偏移量(offset):每个消息在分区内的编号,用来区分不同的消息。
  • 组(group):每个消费者都必须指定一个组,组不用创建,直接指定就可以了。我们可以利用组来实现单播和多播,因为一个消息只能被一个组拉取一次。
  • 复制:分区可以进行复制,分布在多个broker上,提高了容错性。
  • 领导者、追随者:当这些broker都可以用时,选择其中一个broker里的分区作为leader,其他作为follower。leader负责提供服务,follower只用来复制备份。

Kafka优点都有啥

  1. 高吞吐量,能处理大量数据。
  2. 低延迟。
  3. 容错性好,集群中一个节点异常不影响整个系统。
  4. 耐久性好,数据可以复制不会丢失。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容