1.kafka(三)版本演进说明
2.9、NIFI综合应用场景-通过NIFI配置kafka的数据同步
kafka(三)版本演进说明
kafka版本演进概述
kafka从早期版本到最新版本经历了多个大版本迭代,主要在0.7.x到2.7.0版本间。版本演进主要分为以下几个阶段:
0.7.x-0..x版本:基本完善消息队列功能,引入副本机制。
1.x-2.x版本:优化消息队列功能,九线谱指标源码专注于kafka stream相关特性。
0.7.x版本特性:
上古版本,仅提供基础消息队列功能,无副本机制,建议立即升级。
0.8.x版本特性:
增加副本机制,引入新版producer,openjdk 源码查看引入新版消息数据结构,调整压缩偏移量方式,优化性能。
0.9.x版本特性:
增加安全认证/权限功能,使用java重构消费者api,引入Kafka Connect,优化producer稳定性。
0..x版本特性:
引入Kafka Streams,优化消息格式,引入时间戳,新增Kafka Streams客户端,支持后台心跳。游戏 源码下载
0..x版本特性:
提供幂等性producer,事务支持,重构消息格式,增强性能和可靠性。
1.0.x版本特性:
默认开启主题删除功能,支持时间戳搜索,磁盘故障转移,引入新异常处理,改进JVM设置,增强客户端功能。
2.0.0版本特性:
调整默认日志保留时间,不再支持java7,占比源码增强安全相关修改,改进客户端和工具,调整默认json转换器。
2.1.x版本特性:
支持ZStandard压缩,改进生产者和消费者特性。
2.2.x版本特性:
优化Kafka Streams版本需求,强制设置消费者组id。
2.3.x版本特性:
引入增量协作式重新平衡协议,增强Kafka Connect功能。
2.4.x版本特性:
升级zookeeper依赖,弃用选举工具,优化生产者分区策略,pass id源码改进consumer重平衡。
2.5.x-2.7.x版本特性:
简化事务扩展,优化exactly once语音。
建议版本:
从0..x开始,kafka作为传统队列功能完善,建议升级到该版本。1.0.x版本增加磁盘故障转移和跨副本路径迁移功能,2.x版本优化性能和压缩比。最新稳定版本为2.7.0和2.6.1。
升级方案:
提供停机升级-重建部署、停机升级-软件升级、滚动升级-在线滚动升级三种方案,建议小规模公司采用停机后重建部署方式。保持kafka集群和客户端版本一致,减少升级问题。
9、NIFI综合应用场景-通过NIFI配置kafka的数据同步
本文旨在介绍nifi与kafka的交互过程,即生产数据到kafka中,然后通过nifi消费kafka中的数据。
本文前提是nifi、kafka环境正常。
本文分为三个部分,即处理器说明、生产数据到kafka中以及消费kafka中的数据。
一、处理器说明
1、处理器说明
1.1、PublishKafka_0_
描述:使用Kafka 0..x Producer API将FlowFile的内容作为消息发送到Apache Kafka。要发送的消息可以是单独的FlowFiles,也可以使用用户指定的定界符(例如换行符)进行定界。用于获取消息的辅助NiFi处理器是ConsumeKafka_0_。
2、属性配置
2.1、ConsumeKafka_0_
描述:消耗来自专门针对Kafka 0..x Consumer API构建的Apache Kafka的消息。用于发送消息的辅助NiFi处理器是PublishKafka_0_。
在下面的列表中,列出属性及其默认值,以及属性是否支持NiFi表达式语言。
二、Producer生产
1、创建并配置处理器GenerateFlowFile
创建处理器组kafka,进入组后创建GenerateFlowFile处理器。每1秒生产一次数据。
- 文件大小b - 每次生成个相同文件 - 每次生成的流文件内容唯一
2、创建并配置处理器PublishKafka_0_
创建处理器组kafka,进入组后创建PublishKafka_0_处理器。
- Brokers设置为...:,...:,...:。图为示例。
- topic设置为nifi-topic,如果topic不存在,会自动创建
- Delivery Guarantee,对应kafka的acks机制,选择最为安全的Guarantee Replicated Delivery,相当于acks=all
3、配置GenerateFlowFile和PublishKafka_0_连接
连接GenerateFlowFile和PublishKafka_0_
4、负载均衡并发
5、验证
启动并查看监听kafka消费数据,也可以通过 server1:/topic/meta...工具查看生产的数据 在kafka所在服务器执行监听命令:
三、Consumer消费
1、创建并配置ConsumeKafka_0_处理器并连接
2、验证
启动生产者、消费者,验证nifi是否将数据写入kafka、并且kafka的数据是否被消费。以下为模板界面。
以上完成了nifi读取kafka中的数据(消费)。类似的也可以通过nifi将数据写入到nifi中,此处不再赘述。