Skip to content

JMeterKafka压测实战

JMeter Kafka 压测实战

JMeter Kafka 协议性能测试

Apache Kafka 分布式流平台: 发布订阅记录流,和消息队列或者企业新消息系统类似。 以可容错、持久的方式保存记录流。 当记录流产生时就进行处理。

特点: 1.消息持久化 2.高吞吐量 3.可扩展性

todo 截图

JMeter Kafka 协议性能测试

Kafka 消息队列场景:

todo 截图

JMeter Kafka 协议性能测试

Kafka 消息队列场景: 削峰限流: 例如活动场景

todo 截图

JMeter Kafka 协议性能测试

Kafka结构

Topic 和 Publisher: 有一个发布者发送消息。消息根据主题进行分类,每个主题都有一个或多个分区,并有自己的偏移地址。 例如,如果我们为一个主题分配复制因子=2,那么Kafka将为每个分区创建两个相同的副本并在群集中找到它。 集群和Brokers: Kafka集群包括代理--服务器或节点,每个代理可以位于不同的机器中,并允许订户选择消息。因此,复制就像备份分区一样,这意味着Kafka是持久的,这有助于容错。 Zookeeper: Kafka集群不保留其自身生态系统的元数据,因为它是无状态的。 因此,Kafka依赖于Zookeeper来跟踪元数据。Zookeeper应该首先启动。实际上,Zookeeper是brokers和consumers之间的接口,它的存在是容错的必要条件。 Kafka代理负责负载均衡: 假设该 Topic 有一个 Topic 和多个 Part,每个分区都有一个 Leader,定期确认其与Zookeeper的偏移量。 因此,如果一个节点或代理失败,Kafka可以从Zookeeper请求的最后一个偏移地址继续操作。 因此Zookeeper在崩溃情况下在Kafka恢复中起着至关重要的作用。

JMeter Kafka 协议性能测试

todo 截图

JMeter Kafka 协议性能测试

Setup Kafka with Docker
version: '2'
services:
    zookeeper-kafka:
    image: zookeeper3.5
    ports:
    - "2181:2181"
    networks:
    - front
kafka:
    image: wurstmejster/kafka   ## 镜像
    ports:
    - "9092:9092"
    environment:    
    KAFKA ADVERTISED HOST NAME:127.0.0.1    ## 修改:宿主机IP
    KAFKA_ZOOKEEPER_CONNECT: zoQkeaper:kafke:2181 ## kafke运行是基于zookeeper的
    networks:
    - front
    depends on:
    - zookeeper-kafka
kafka-manager:
    image: sheepkiller/kafke-manager    ## 镜像:开源的web管理kafka集群的界面
    environment:
    ZK_HOSTS: zookeeper-kafke:2181 ## 修改:宿主机IP
    poris:
    - "9000:9000"   ## 暴露端口
    networks:
    - front
    depends_on:
    - zookeeper-kafka
networks:
    front:

JMeter Kafka 协议性能测试

Kafka Manager https://github.com/yahoo/kafka-manager.git

todo 截图

JMeter Kafka 协议性能测试

Java Kafka Producer

todo 截图

JMeter Kafka 协议性能测试

Java Kafka Producer

todo 截图

JMeter Kafka 协议性能测试

Try with Jmeter pepper-box Plugin Git Clone https://github.com/GSLabDev/pepper-box.git Wget https://github.com/raladev/load/blob/master/JARs/pepper-box-1.0.jar Mvn Package And Copy to Path

Try And Failed, Due to Kafka Version Not Match.