kafka是一个事件流平台
- 什么事件流?,事件流是从事件源实时捕获数据的做法 如数据库、传感器、移动设备、云服务和流形式的软件应用程序 事件; 持久地存储这些事件流以供以后检索; 操作、处理和反应 实时和可追溯的事件流; 并将事件流路由到不同的 根据需要使用目标技术。 事件流因此确保了连续的流和解释 数据,以便正确的信息在正确的时间出现在正确的位置。
-
kafka的功能?
- 要 发布 (写)和 订阅 (读取)的事件流,包括连续的导入/导出 您来自其他系统的数据。
- 持久并可靠存储你想要的事件流
- 处理 事件发生时或追溯性 事件流。
kafka基本概念了解
- 生产者:生产者 是那些向 Kafka 发布(写入)事件的客户端应用程序
- 消费者:订阅(读取和处理)这些事件的
- 主题:主题类似于文件系统中的文件夹,事件就是该文件夹中的文件
- 分区:主题是 分区的 ,一个主题可以分布在位于不同 Kafka 代理的多个“桶”上。
- broker:一个 Kafka 服务器也称为 Broker,它接受生产者发送的消息并存入磁盘;Broker 同时服务消费者拉取分区消息的请求,返回目前已经提交的消息一个 Kafka 服务器也称为 Broker,它接受生产者发送的消息并存入磁盘;Broker 同时服务消费者拉取分区消息的请求,返回目前已经提交的消息
kafka功能测试-如何验证数据的一致性和有序性
可以创建一个单分区的Topic,然后自己写一个生产者程序,程序发送的事件流可以从设定值从1到N自增长;写一个消费者程序,单线程消费,将消费到的数据写进文件中,观测有序性;还可以对kafka服务进程直接杀死,进行故障模拟。
kafka性能测试
性能压测是系统性问题,需要考量对整体业务的掌握程序,以及对kafka的熟悉程度。压测过程中涉及压测工具选取,监测kafka,压测结果分析。
- 明确压测场景:明确要压测的场景
- 测试环境准备:在服务器选择,kafka版本,kafka架构以及相关配置参数、业务数据等尽可能与线上环境保持一致
- 压测工具选取:生产者压测使用kafka自带的测试工具kafka-producer-perf-test.sh来进行测试,发送数据推荐使用线上数据导出到本地文件,随机读取进行
- 压测过程观测:首先开启kafka的JMX端口,①可以使用滴滴的Logikm(但是需要自己搭建部署);②自己通过JMX端口以及官方原生API获取相关指标,CPU、内存、网络等监测可以使用nomn或者top命令来监测
- 压测结果分析:理想状态是系统资源使用达到瓶颈,如未达到则寻找软件资源瓶颈,配合堆栈分析,发现线程阻塞点。
- 压测报告呈现:一般有测试环境说明、测试场景说明、测试过程说明、测试结论(在当前场景下的最佳资源使用以及配置)。