Как опубликовать sh базовое c сообщение для обмена RabbitMQ с помощью op-rabbit - PullRequest
1 голос
/ 04 августа 2020

Я безрезультатно пытался заставить очень простое приложение, работающее для публикации sh сообщений в обмене RabbitMQ с использованием библиотеки Scala op-rabbit. неправильно, но документы очень ограничены относительно публикации сообщений.

Я могу заставить актера подключиться к RabbitMQ. Однако после публикации сообщения оно не отображается в Rabbit.

Вот код, который я использую для публикации sh сообщения:

object RmqPublisher extends App {
  val actorSystem = ActorSystem("my-actor")
  private lazy val config: Config = ConfigFactory.load()

  val rabbitControl: ActorRef =
    actorSystem.actorOf(Props {
      new RabbitControl(
        ConnectionParams.fromConfig(config.getConfig("op-rabbit.rabbit"))
      )
    }
    )

  rabbitControl ! Message.exchange("Test", "amq.direct", "my_routing_key")
}

Вот моя конфигурация :

op-rabbit {
  topic-exchange-name = amq.direct
  channel-dispatcher = "op-rabbit.default-channel-dispatcher"
  default-channel-dispatcher {
    # Dispatcher is the name of the event-based dispatcher
    type = Dispatcher

    # What kind of ExecutionService to use
    executor = "fork-join-executor"

    # Configuration for the fork join pool
    fork-join-executor {
      # Min number of threads to cap factor-based parallelism number to
      parallelism-min = 2

      # Parallelism (threads) ... ceil(available processors * factor)
      parallelism-factor = 2.0

      # Max number of threads to cap factor-based parallelism number to
      parallelism-max = 4
    }
    # Throughput defines the maximum number of messages to be
    # processed per actor before the thread jumps to the next actor.
    # Set to 1 for as fair as possible.
    throughput = 100
  }

  rabbit {
    exchange-name ="amq.direct"
    routing-keys = "my_routing_key"
    virtual-host = "/"
    hosts = ["localhost"]
    username = "guest"
    password = "guest"
    port = 5672
    ssl = false
    connection-timeout = "5s"
    max-tps = 1000
  }
}

Журналы предполагают, что он успешно подключен, как показано ниже:

[INFO] [08/04/2020 21:49:39.219] [my-actor-op-rabbit.default-channel-dispatcher-5] [akka://my-actor/user/$a/connection/$a] akka://my-actor/user/$a/connection/$a connected
[INFO] [08/04/2020 21:49:39.223] [my-actor-akka.actor.default-dispatcher-4] [akka://my-actor/user/$a/connection] akka://my-actor/user/$a/connection connected to amqp://guest@{localhost:5672}:5672//
[INFO] [08/04/2020 21:49:39.230] [my-actor-akka.actor.default-dispatcher-2] [akka://my-actor/user/$a/connection/confirmed-publisher-channel] akka://my-actor/user/$a/connection/confirmed-publisher-channel connected

Обзор RabbitMq

Есть идеи, что я делаю не так?

...