2021-10-19

2021-10-19,第1张

2021-10-19 Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,有Scala和Java编写。Kafka是一个分布式的、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式发布订阅消息系统,他的最大特征就是可以实时的处理大量数据以满足各种需求场景。

Kafka特性:
  • 高吞吐、低延迟:Kafka每秒可以处理几十万的数据,他的延迟最低只有几毫秒
  • 可扩展:Kafka集群支持热扩展
  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持备份以防止数据丢失
  • 容错性:允许集群中节点故障(若副本为n,允许n-1个节点故障)
  • 高并发:支持数千个客户端同时读写
相关术语:

broker: Kafka集群中包含一个或者多个服务器,这种服务器成为broker,也可以叫做缓存代理。
topic:可以理解为一个MQ消息队列,是Kafka数据写入 *** 作的基本单元,可以指定副本。一个非常大的topic可以分布到多个broker上。一个topic可以包含一个或者多个partition。
partition:称为分区。partition是最小的存储单元。物理上的partition对应的是一个文件夹。partition可以分成leader(主)和flower(副本),一个partition只有一个leader,可以有多个flower。
producer:生产者,向Kafka集群中发布消息,在发送消息之前,会对消息进行分类,即topic。
consumer:消费者,消费者通过与Kafka集群建立长连接的方式,不断地从集群中拉取消息,然后可以对这些消息进行处理。

消息传递模式

1.点对点模式
在点对点消息系统中,消息持久化一个队列中。将有一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次。数据被消费之后,该条数据则从消息队列中删除。

生产者发送一条消息到queue,只有一个消费者能收到。他们之间实现了可靠的负载均衡。

2.发布-订阅模式
在发布-订阅消息传递模式中,消息被持久化到一个topic中。消费者可以订阅一个或者多个topic,消费者可以消费该topic中所有的数据,同一条数据可以被多个消费者消费,数据消费后不会立马删除。在这种模式下,消息的生产者成为发布者,消息的消费者成为订阅者。

发布者发送到topic的消息,只有订阅了topic的订阅者才会收到消息。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4670659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存