Erlang 如何将RabbitMQ配置为使用当前时间覆盖timestamp属性?
例如:Erlang 如何将RabbitMQ配置为使用当前时间覆盖timestamp属性?,erlang,rabbitmq,rabbitmq-shovel,Erlang,Rabbitmq,Rabbitmq Shovel,例如: {myshovel, [ {sources, ...} , {destinations, ...} , {queue, <<>>} , {ack_mode, on_confirm} , {publish_properties, [ {delivery_mode, 2} , {timestamp, now} % this is the line I need to understand how
{myshovel, [
{sources, ...}
, {destinations, ...}
, {queue, <<>>}
, {ack_mode, on_confirm}
, {publish_properties, [
{delivery_mode, 2}
, {timestamp, now} % this is the line I need to understand how to write
]}
, {publish_fields, [{exchange, <<"">>}, {routing_key, <<"">>}]}
, {reconnect_delay, 5}
]}
{myshovel[
{来源,…}
,{目的地,…}
,{queue,}
,{ack_mode,on_confirm}
,{发布属性[
{传送模式,2}
,{timestamp,now}%这是我需要了解如何编写的行
]}
,{publish_字段,[{exchange,},{routing_key,}]}
,{重新连接延迟,5}
]}
我很好奇如何编写
publish\u属性
,以便RabbitMQ铲用当前时间覆盖时间戳(就像铲收到消息并将其铲到目标队列中一样)。不幸的是,在编写时无法以这种方式配置铲。电铲配置,包括转发消息的publish\u属性
,在电铲工作人员启动时读取,并且只能包含静态内容。因此,无论您在{publish_properties]中输入什么值,[{timestamp,timestamp}]}
都将直接传递给erlang客户机,而erlang客户机将尝试序列化这些值(使用amqp_框架层)
我们目前正在计划对铲式插件的一些改进(例如集群范围的故障转移和动态重新配置),而您不是第一个请求此特性的人,所以我们将考虑是否有意义地支持此处特定的内容(例如,为每个处理的消息设置新的时间戳)。或者是一种配置电铲工人运行时行为的通用方法。
非常有用,我想,但我想确定一下。目前,我正在WAN上使用铲子,我们试图锁定各点之间的延迟时间,并给出相应的度量。这将非常有用。