我有一个 javascript 函数应用程序,它定义了指向事件中心的输出绑定(bind),如 here 所述.我一次(批量)发送多条消息以确保最佳性能:
var message1 = //create javascript object here
var message2 = //create javascript object here
(...)
context.bindings.outputEventHubMessage = [];
context.bindings.outputEventHubMessage.push(message1);
context.bindings.outputEventHubMessage.push(message2);
(...)
context.done();
这可行,但我想在消息级别设置分区键,以确保具有相同分区键的消息最终在同一个 EH 分区中。我试过以下:
message1.partitionKey = "ABC";
message2.partitionKey = "ABC";
...但它不起作用 - 对于大量消息,我注意到具有相同分区键的消息具有不同的分区 ID。
批量发送时是否可行?如果不是,那么在发送 1-by-1 时会起作用吗?
最佳答案
基于 this discussion ,现在绑定(bind)的工作方式似乎是不可能的。虽然讨论是关于 C#,但同样适用于其他语言。
考虑到事件中心 SDK 中的变化,至少对于 C#,通过直接绑定(bind)到 EventHubClient
似乎有 an option。但这对于其他语言是不可能的。
解决方法是直接使用 Azure Event Hubs NodeJS SDK 而不是使用绑定(bind)。
关于javascript - 为事件中心输出绑定(bind)设置 partitionKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60642682/