1、初识kafka

kafka 就是一个 1.1 发布订阅消息系统

特点:高吞吐量(每秒百万生产消费)、持久性、分布式的扩展和容错;也是消息中间件:处理活跃的数据,如登录、浏览。被称为分布式提交日志”或者“分布式流平台

发布者对消息分类,接受者订阅,接受特定类型的消息。

1.2 登场

1、消息:1)数据单元称为消息,一行或一条记录,2)(可选元数据,为键生成散列值,对主题分区进行取模,相同键相同分区),3)分批次(一组消息)写入 Kafka,属于同一主题和分区。批次越大,传输时间越长

2、模式:1)消息模式,类似json和xml。2)和消息体分开,模式变化,无需重新生成代码恰后兼容。3)数据格式消除读写耦合性。

3、主题:消息通过主题分类,好比数据库的表,或文件系统的文件夹。若干个分区,一个分区就是一个提交日志。消息追加写入分区,先入先出顺序读。ps:主题一般包含几个分区,无法在整个主题范围内保证消息的顺序,可保证单个分区顺序

4、分区:分布不同服务器上,也就是,一个主题可以横跨多个服务器

5、生产者:消息发布特定主题上,生产者把消息均衡分布主题所有分区上,若要写到特定分区(自己实现分区器,实现hash ,散列值)

6、消费者:通过偏移量区分已读消息,是消费者群组一部分,群组一个分区只能被一个消费者用

7、偏移量:递增元数据,每个消息偏移量都是唯一,保存zk或kafka上,消费者关闭不受影响

8、broker:一个独立的 Kafka 服务器被称为 broker,接收消息,设置偏移量,保存到磁盘

9、集群:每个集群都有一个 broker 当集群控制器,将分区分配给 broker监控 broker

1)首领broker:集群中一个分区属于一个broker;2)分区复制:一个分区可分配给多个 broker3)保留消息:几天或到一定字节紧凑型日志:保留几个小时,特定键会保留,一般只关心最后一个

10、多集群:数据类型分离、安全需求隔离、多数据中心(灾难恢复)、数据复制用MirrorMaker 工具连接队列,否则只能单集群

1.3 为什么选择kafka

1、多个生产者无需协调不同生产者数据流,自定义不同topic 统一数据格式

2、多个消费者,1)支持多个消费者从单独消息流读取数据,互不影响, 2)组成群组,共享消息流,每个给定消息只处理一次

3、基于磁盘的数据存储,伸缩性、高性能 生态系统成熟

1.4 使用场景

活动跟踪、流处理

传递消息:格式化、多个消息放一个通知里发送,根据配置发送消息

度量指标和日志记录:定期把度量指标发到kafka上,数据分析如,年度走势

提交日志:db更新发布到kafka上,故障可重放,不用担心过期问题

你可能感兴趣的:(1、初识kafka)