Я установил два экземпляра AMI (redhat), один с брокером ActiveMQ 5.11, другой с некоторыми инструментами стресс-тестирования (gatling с Mqtt, mqtt-stres и т. д.). Я остановил службу iptables (брандмауэр) на обоих экземплярах. Группы безопасности AWS разрешают порт 1883 для обмена сообщениями mqtt.
Запуск mqtt-stress.py завершается успешно, он совершает круговое путешествие, и я получаю ответное сообщение от брокера. Когда я запускаю симуляцию Гатлинга, все потоки переходят в состояние «Активно» и никогда не доходят до «Готово». Я даже установил брокера на той же машине, что и Gatlin, и указал Simulation на «localhost», тот же результат. В журнале моделирования ничего не появляется. tcpdump на исходном сервере показывал, что входящие соединения не выполняются. Вот симуляция:
import io.gatling.core.Predef._
import org.fusesource.mqtt.client.QoS
import scala.concurrent.duration._
import com.github.mnogu.gatling.mqtt.Predef._
class BasicMqttSimulation extends Simulation {
val mqttConf = mqtt
// MQTT broker
//.host("tcp://127.0.0.1:1883")
.host("tcp://175.10.130.10:1883")
val scn = scenario("MQTT Test")
.exec(mqtt("request")
// topic: "foo"
// payload: "Hello"
// QoS: AT_LEAST_ONCE
// retain: false
.publish("foo", "Hello", QoS.AT_LEAST_ONCE, retain = false))
setUp(
scn
.inject(constantUsersPerSec(10) during(10 seconds)))
.protocols(mqttConf)
}
Любые советы о том, как устранить проблему дальше?