Configuration 具有备用Exchange的RabbitMQ配置

Configuration 具有备用Exchange的RabbitMQ配置,configuration,rabbitmq,Configuration,Rabbitmq,我正在尝试使用声明列表为RabbitMQ配置Spoot插件。我已将远程exchange配置为在创建时具有备用exchange 我的问题是,我无法获取包含此参数的Solve配置文件,因此RabbitMQ在启动时崩溃 我的配置是这样的: [ {mnesia, [{dump_log_write_threshold, 100}]}, {rabbit, [{vm_memory_high_watermark, 0.4}]}, {rabbitmq_shovel, [{s

我正在尝试使用声明列表为RabbitMQ配置Spoot插件。我已将远程exchange配置为在创建时具有备用exchange

我的问题是,我无法获取包含此参数的Solve配置文件,因此RabbitMQ在启动时崩溃

我的配置是这样的:

[
    {mnesia, [{dump_log_write_threshold, 100}]},
    {rabbit, [{vm_memory_high_watermark, 0.4}]},
    {rabbitmq_shovel,
        [{shovels,
            [{call_stats_shovel,
                [{sources, [{broker, "amqp://guest:guest@localhost:5672/test"},
                    {declarations,
                        [{'queue.declare', [{queue, <<"incoming">>}, durable]},
                        {'exchange.declare',[{exchange, <<"my-exchange-topic">>},{type, <<"topic">>},durable]},
                        {'queue.bind',[{exchange, <<"my-exchange-topic">>},{queue, <<"incoming">>}]}
                ]}]},
                {destinations, [{broker, "amqp://guest:guest@172.16.3.162:5672/blah"},
                    {declarations,
                    [
                        {'queue.declare',[{queue, <<"billing">>},durable]},
                        {'exchange.declare',[{exchange, <<"my-exchange-topic">>},{type, <<"topic">>},{alternate_exchange, <<"alt">>}, durable]},
                        {'queue.bind',[{exchange, <<"my-exchange-topic">>},{queue, <<"billing">>},{routing_key, <<"physical">>}]}
                    ]}
                ]},
                {queue, <<"incoming">>},
                {ack_mode, no_ack},
                {publish_properties, [{delivery_mode, 2}]},
                {reconnect_delay, 5}
                ]}
            ]
        }]
    }
].
[
{mnesia,[{dump_log_write_threshold,100}]},
{rabbit,[{vm_memory_high_watermark,0.4}]},
{Rabbituèu铲,
[{铲子,
[{打电话给统计局,
[{来源,[{经纪人,”amqp://guest:guest@localhost:5672/test“},
{声明,
[{'queue.declare',[{queue,},持久]},
{'exchange.declare',[{exchange,},{type,},持久]},
{'queue.bind',[{exchange,},{queue,}]}
]}]},
{目的地,[{代理,”amqp://guest:guest@172.16.3.162:5672/诸如此类,
{声明,
[
{'queue.declare',[{queue,},持久]},
{'exchange.declare',[{exchange,},{type,},{alternate_exchange,},持久]},
{'queue.bind',[{exchange,},{queue,},{routing_key,}]}
]}
]},
{队列,},
{ack_mode,no_ack},
{publish_properties,[{delivery_mode,2}]},
{重新连接延迟,5}
]}
]
}]
}
].
问题出在名为“我的exchange主题”的目标exchange上。如果我去掉声明部分,那么配置文件就可以工作了

这就是错误:

=信息报告===2012年7月31日::12:15:25=== 应用:rabbitmq_铲 退出:{{无效的电铲配置,调用电铲状态, {无效的参数值,目的地, {未知_字段,'exchange.declare', [alternate_exchange]}}, {兔子_铲,开始,[正常,[]} 类型:永久性

如果我将alternate_exchange部分保留在声明之外,则在RabbitMQ web管理中会出现以下错误:

{{关闭, {服务器启动关闭,406, }}, {gen_服务器,呼叫, [, {打电话, {'exchange.declare',0,,,false, 真,假,假,假,[]}, 没有,}, 无限]}


对于了解如何配置需要附加参数的交换和队列的任何人,您可以这样做:

{'exchange.declare',[{exchange, <<"my-exchange-topic">>},{type, <<"topic">>}, durable, {arguments, [{<<"alternate-exchange">>, longstr, <<"alternate-exchange">>}]}  ]},
{'exchange.declare',[{exchange,},{type,},持久,{arguments,[{,longstr,}]},
您可以对队列执行类似的操作:

{'queue.declare',[{queue, <<"my-queue">>},durable, {arguments, [{<<"x-dead-letter-exchange">>, longstr, <<"dead-letter-queue">>}]}]}
{'queue.declare',[{queue,},持久,{arguments,[{,longstr,}]}

对于了解如何配置需要附加参数的交换机和队列的人,您可以这样做:

{'exchange.declare',[{exchange, <<"my-exchange-topic">>},{type, <<"topic">>}, durable, {arguments, [{<<"alternate-exchange">>, longstr, <<"alternate-exchange">>}]}  ]},
{'exchange.declare',[{exchange,},{type,},持久,{arguments,[{,longstr,}]},
您可以对队列执行类似的操作:

{'queue.declare',[{queue, <<"my-queue">>},durable, {arguments, [{<<"x-dead-letter-exchange">>, longstr, <<"dead-letter-queue">>}]}]}
{'queue.declare',[{queue,},持久,{arguments,[{,longstr,}]}

为了澄清上述评论,如果是exchange2exchange铲,配置为:

{'exchange.declare',[{exchange, <<"my-exchange-topic">>},{type, <<"topic">>}, durable, {arguments, [{<<"alternate-exchange">>, longstr, <<"name-of-your-alternate-exchange">>}]}  ]},
{'exchange.declare',[{exchange,},{type,},持久,{arguments,[{,longstr,}]},

为了澄清上述评论,如果是exchange2exchange铲,配置为:

{'exchange.declare',[{exchange, <<"my-exchange-topic">>},{type, <<"topic">>}, durable, {arguments, [{<<"alternate-exchange">>, longstr, <<"name-of-your-alternate-exchange">>}]}  ]},
{'exchange.declare',[{exchange,},{type,},持久,{arguments,[{,longstr,}]},