我已经安装并运行了带有 Erlang 20.1 的 RabbitMQ 3.5.7。我还在同一台服务器上运行了 PostgreSQL 9.5。
在 Rabbit 中,我从这里安装了插件 pgsql-listen-exchange
:
https://github.com/gmr/pgsql-listen-exchange
根据rabbitmq-plugins list
,它在那里并且正在运行:
[E*] pgsql_listen_exchange 0.3.0-v3.5.x
我在 Rabbit Management UI 中创建了一个交换器和 channel ,用于将消息从 PGSQL 发送到:
当我从 CLI 登录到 PGSQL 并尝试发送 NOTIFY
消息时,它从未通过:
我错过了什么,我已经按照 Rabbit 的 GIT 页面和文档上的说明进行操作了吗?
最佳答案
来自github reference你提供的,
交易所的行为类似于 direct exchange ,这意味着您需要在交换“MyChannel”和队列“MyChannel”之间提供适当的绑定(bind)(建议您在投入生产之前更改它们的名称,顺便说一句)。
您已经定义了一个具有空路由键的绑定(bind)。
在你的测试中(再次基于github信息):
NOTIFY MyChannel, 'This is a test'
将创建一 strip 有路由键“MyChannel”的消息。 由于您配置的绑定(bind)(空字符串)与提供的路由键“MyChannel”不匹配,因此消息不会传输到队列。
关于postgresql - 消息不进入队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47891938/