You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gatling是否支持多协议并行执行?以双Kafka Topic场景为例

双Gatling场景并行向不同Kafka Topic发送事件的方案可行性确认

这个方案完全可行,Gatling的setUp方法原生支持同时启动多个独立场景,每个场景可以绑定专属的协议配置,刚好适配你这种「Kafka Topic配置在协议层级」的需求。

你提供的代码思路是正确的,下面是补充上下文后的规范代码示例:

// 配置指向Topic_1的Kafka协议
val kafkaConfTopic_1 = KafkaProtocol
  .kafka
  .topic("topic_1")
  .producerProps(
    ProducerConfig.BOOTSTRAP_SERVERS_CONFIG -> "kafka-broker:9092",
    ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG -> classOf[StringSerializer].getName,
    ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG -> classOf[StringSerializer].getName
    // 其他生产者配置按需添加
  )

// 配置指向Topic_2的Kafka协议
val kafkaConfTopic_2 = KafkaProtocol
  .kafka
  .topic("topic_2")
  .producerProps(
    ProducerConfig.BOOTSTRAP_SERVERS_CONFIG -> "kafka-broker:9092",
    ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG -> classOf[StringSerializer].getName,
    ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG -> classOf[StringSerializer].getName
    // 其他生产者配置按需添加
  )

// 定义发送Topic_1的场景
val scn = scenario("Produce Events to Topic_1")
  .exec(
    KafkaProducerAction
      .send("send_event_topic1")
      .message(StringBody("""{"type": "test_topic1", "data": "sample"}"""))
  )

// 定义发送Topic_2的场景
val scn2 = scenario("Produce Events to Topic_2")
  .exec(
    KafkaProducerAction
      .send("send_event_topic2")
      .message(StringBody("""{"type": "test_topic2", "data": "sample"}"""))
  )

// 并行启动两个场景,各自绑定对应Kafka协议
setUp(
  scn.inject(
    rampUsersPerSec(1).to(60).during(10 minutes),
    constantUsersPerSec(60).during(60 minutes),
    rampUsersPerSec(60).to(1).during(10 minutes)
  ).protocols(kafkaConfTopic_1),
  
  scn2.inject(
    rampUsersPerSec(1).to(60).during(10 minutes),
    constantUsersPerSec(60).during(60 minutes),
    rampUsersPerSec(60).to(1).during(10 minutes)
  ).protocols(kafkaConfTopic_2)
)

额外说明

  • 两个场景的注入策略可以完全独立调整,无需强制保持一致,根据实际压测需求修改即可
  • 需确保Kafka协议配置中的序列化器、集群地址等参数与你的Kafka集群匹配
  • 压测期间建议监控Kafka集群的分区负载、生产吞吐量等指标,避免并发过高导致生产失败

内容的提问来源于stack exchange,提问作者lahiruW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:35:20