在 Azure 事件中心中,将事件从一个事件中心复制到另一个事件中心的最简单方法是什么
In Azure Event Hubs, what is the simplest way to copy events from one Event Hub to another
我想将事件(包括其 header 数据原封不动地复制到另一个事件中心。
到目前为止我尝试了什么:
- 带有事件中心触发器和事件中心输出的 Azure 函数。该函数是在 C# 中实现的,因为这是我找到的唯一可以访问 header 的运行时。我在这里看到的问题是,当 headers 的类型为
byte[]
时,该函数在输出端失败,并显示一条无法序列化它们的消息。消息使用 Kafka 写入源事件中心,这意味着所有 header 的类型都是 byte[]
.
- 一个简单的 Spring Cloud Stream 应用程序部署到我们的 OpenShift 集群。这可行,但意味着当我们希望拥有无服务器解决方案时需要额外部署才能运行。
有没有更简单的方法来做到这一点?
有一组 Event replication tasks for Azure Functions 旨在进行翻译工作并使将事件转发到第二个事件中心变得容易。
就是说,我不知道它是否支持在这样做时维护分区键 - 您需要进行测试以确保。如果没有,您将需要操纵底层 AMQP 消息来附加它。
为此,您需要在目标 EventData
实例上调用 GetRawAmqpMessage。在返回的 AmqpAnnotatedMessage
上,您可以手动将分区键注入 Message Annotations
部分,方法是添加一个包含键 x-opt-partition-key
和您想要的分区键值的项目它来反映。
如果复制任务由于某种原因不能满足您的需求,最好的方法可能是使用 中讨论的方法手动发布事件。
我想将事件(包括其 header 数据原封不动地复制到另一个事件中心。
到目前为止我尝试了什么:
- 带有事件中心触发器和事件中心输出的 Azure 函数。该函数是在 C# 中实现的,因为这是我找到的唯一可以访问 header 的运行时。我在这里看到的问题是,当 headers 的类型为
byte[]
时,该函数在输出端失败,并显示一条无法序列化它们的消息。消息使用 Kafka 写入源事件中心,这意味着所有 header 的类型都是byte[]
. - 一个简单的 Spring Cloud Stream 应用程序部署到我们的 OpenShift 集群。这可行,但意味着当我们希望拥有无服务器解决方案时需要额外部署才能运行。
有没有更简单的方法来做到这一点?
有一组 Event replication tasks for Azure Functions 旨在进行翻译工作并使将事件转发到第二个事件中心变得容易。
就是说,我不知道它是否支持在这样做时维护分区键 - 您需要进行测试以确保。如果没有,您将需要操纵底层 AMQP 消息来附加它。
为此,您需要在目标 EventData
实例上调用 GetRawAmqpMessage。在返回的 AmqpAnnotatedMessage
上,您可以手动将分区键注入 Message Annotations
部分,方法是添加一个包含键 x-opt-partition-key
和您想要的分区键值的项目它来反映。
如果复制任务由于某种原因不能满足您的需求,最好的方法可能是使用