KAFKA的个人理解赏析

上篇博客说过近期做的交易日志剥离,准备了三个方案,第一个是RestTemplate,第二就是
kafka,其三是PostMethod,因为找了不少资料,将kafka的运行原理之类的看了一边,此篇
就着重讲解kafka是怎么工作的及kafka的几个模块各及有什么用处

Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,使用 Scala语言编写,之后成为 Apache 项目的一部分。Kafka 是一个分布式的,可划分的,多订阅者,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。

kagka的优点

  1. 消息被处理的状态是在 consumer 端维护,而不是由 server 端维护。当失败时能自动平衡。
  2. 可进行持久化操作。将消息持久化到磁盘,因此可用于批量消费,例如 ETL,以及实时应用程序。通过将数据持久化到硬盘以及 replication 防止数据丢失。
  3. 分布式系统,易于向外扩展。所有的 producer、broker 和 consumer 都会有多个,均为分布式的。无需停机即可扩展机器。
  4. 同时为发布和订阅提供高吞吐量。据了解,Kafka 每秒可以生产约 25 万消息(50 MB),每秒处理 55 万消息(110 MB)
  5. kafka采用的是文本日志有序的方式来记录信息的,和内存没有关系,全部将接受的信息持久化到硬盘上,接收和消费互不影响,大大提高了IO效率

kagka的逻辑架构

如上图

  1. Producer 特指消息的生产者
  2. Consumer 特指消息的消费者
  3. Consumer Group 消费者组,可以并行消费Topic中partition的消息
  4. Broker:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker
  5. Topic:特指 Kafka 处理的消息源(feeds of messages)的不同分类
  6. Partition:Topic 物理上的分组,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的 id(offset)。
  7. Message:消息,是通信的基本单位,每个 producer 可以向一个 topic(主题)发布一些消息。
  8. Producers:消息和数据生产者,向 Kafka 的一个 topic 发布消息的过程叫做 producers。
  9. Consumers:消息和数据消费者,订阅 topics 并处理其发布的消息的过程叫做 consumers。

猜你喜欢

转载自blog.csdn.net/xuxie13/article/details/79237093