关于kafka:Kafka是什么主要应用在什么场景

42次阅读

共计 1734 个字符,预计需要花费 5 分钟才能阅读完成。

1、kafka 是什么?

Kafka 是由 LinkedIn 开发的一个分布式基于公布 / 订阅的音讯零碎,应用 Scala 编写,它以可程度扩大和高吞吐率而被宽泛应用。

2、产生背景

Kafka 是一个音讯零碎,用作 LinkedIn 的流动流(Activity Stream)和经营数据处理管道(Pipeline)的根底。流动流数据是简直所有站点在对其网站应用状况做报表时都要用到的数据中最惯例的局部。

流动数据包含页面访问量(Page View)、被查看内容方面的信息以及搜寻状况等内容。这种数据通常的解决形式是先把各种流动以日志的模式写入某种文件,而后周期性地对这些文件进行统计分析。

经营数据指的 3 是服务器的性能数据(CPU、IO 使用率、申请工夫、服务日志等等数据)。经营数据的统计办法品种繁多。

3、根本架构图

4、基本概念解释

Broker

Kafka 集群蕴含一个或多个服务器,这种服务器被称为 broker。broker 端不保护数据的生产状态,晋升了性能。间接应用磁盘进行存储,线性读写,速度快:防止了数据在 JVM 内存和零碎内存之间的复制,缩小耗性能的创建对象和垃圾回收。

Producer

负责公布音讯到 Kafka broke

Consumer

音讯消费者,向 Kafka broker 读取音讯的客户端,consumer 从 broker 拉取 (pull) 数据并进行解决。

Topic

每条公布到 Kafka 集群的音讯都有一个类别,这个类别被称为 Topic。(物理上不同 Topic 的音讯离开存储,逻辑上一个 Topic 的音讯尽管保留于一个或多个 broker 上但用户只需指定音讯的 Topic 即可生产或生产数据而不用关怀数据存于何处)

Partition

Parition 是物理上的概念,每个 Topic 蕴含一个或多个 Partition.

Consumer Group

每个 Consumer 属于一个特定的 Consumer Group(可为每个 Consumer 指定 group name,若不指定 group name 则属于默认的 group)

Topic & Partition

Topic 在逻辑上能够被认为是一个 queue,每条生产都必须指定它的 Topic,能够简略了解为必须指明把这条音讯放进哪个 queue 里。为了使得 Kafka 的吞吐率能够线性进步,物理上把 Topic 分成一个或多个 Partition,每个 Partition 在物理上对应一个文件夹,该文件夹下存储这个 Partition 的所有音讯和索引文件。

若创立 topic1 和 topic2 两个 topic,且别离有 13 个和 19 个分区,则整个集群上会相应会生成共 32 个文件夹(本文所用集群共 8 个节点,此处 topic1 和 topic2 replication-factor 均为 1)。

5、实用场景

Messaging

对于一些惯例的音讯零碎,kafka 是个不错的抉择;partitons/replication 和容错, 能够使 kafka 具备良好的扩展性和性能劣势. 不过到目前为止, 咱们应该很分明意识到,kafka 并没有提供 JMS 中的 ” 事务性 ”” 音讯传输担保(音讯确认机制)”” 音讯分组 ” 等企业级个性;kafka 只能应用作为 ” 惯例 ” 的音讯零碎, 在肯定水平上, 尚未确保音讯的发送与接管相对牢靠(比方, 音讯重发, 音讯发送失落等)

Website activity tracking

kafka 能够作为 ” 网站活性跟踪 ” 的最佳工具; 能够将网页 / 用户操作等信息发送到 kafka 中. 并实时监控, 或者离线统计分析等

Metrics

Kafka 通常被用于可操作的监控数据。这包含从分布式应用程序来的聚合统计用来生产集中的经营数据提要。

Log Aggregation

kafka 的个性决定它非常适合作为 ” 日志收集核心 ”;application 能够将操作日志 ” 批量 ”” 异步 ” 的发送到 kafka 集群中, 而不是保留在本地或者 DB 中;kafka 能够批量提交音讯 / 压缩音讯等, 这对 producer 端而言, 简直感觉不到性能的开销. 此时 consumer 端能够使 hadoop 等其余系统化的存储和剖析零碎。

最初,关注公众号民工哥技术之路,能够获取我整顿的 音讯队列、中间件相干的技术文章、面试题精选,十分齐全。

链接:https://blog.csdn.net/code52/…

正文完
 0