kafka介绍

官网:https://kafka.apache.org/

Kafka是一个分布式事件流平台

1 介绍

核心特性:高吞吐量、弹性、持久化存储、高可用

事件流类似人类的中枢神经系统。越来越多的业务被软件实现和自动化,在此种情况下软件的用户还是软件。
技术上讲,事件流就是实时的从事件源(数据库,传感器,移动设备,云设备,软件系统)获取事件;持久化存储以备后续的获取;实时的操作、处理、响应事件流;把这些事件路由到其需要的地方。

简而言之,kafka是一个分布式系统,由servers和clients组成,他们之间通过tcp协议通信。其中servers可以由多个节点组成,这些节点可以跨数据中心。一些servers处于存储层称之为brokers,另一些运行Kafka Connect持续的进行事件流的进和出

2 主要概念

事件就是在你业务中“有些事情发生了”,我们也可以理解为一条记录或者一个消息。一个事件由:key,value,timestamp,header组成。

生产者是向kafka写events的客户端。消费者是订阅这些事件的客户端。

Events被组织和持久化在topics下。一个topics类似于文件系统中的文件夹,events类似于该文件夹中的文件。topics往往是multi-producer 和 multi-subscriber的。topics中的事件是持久化的,可以被消费任意多次而不会被删除,这和普通的消息队列不同。我们可以自己定义events被保存多久。即使是数据量升到很大也不会影响kafka的性能。

topic是分区(partition)的,一个topic会被分散到多个brokers上。这种分布式的数据存储方式对可伸缩性非常重要,因为它允许客户端同时从/向多个brokers读取和写入数据。当一个event被发布到一个topic后,它实际上只会追加到其中一个partition中。具有相同event key的事件会写入相同的partition中。并且kafka保证每一个partition中的event都会被顺序消费。

为了提高容错性和高可用性,每个topic可以是副本集,甚至可以跨地理区域或数据中心。

 

posted @ 2023-10-20 09:11  zhenjingcool  阅读(6)  评论(0编辑  收藏  举报