Saya memiliki aplikasi fungsi javascript, yang mendefinisikan pengikatan keluaran yang menunjuk ke Hub Acara seperti yang dijelaskan di sini. Saya mengirim beberapa pesan sekaligus (dalam batch) untuk memastikan kinerja terbaik:

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();

Itu berhasil, tetapi saya ingin mengatur kunci partisi pada tingkat pesan, untuk memastikan bahwa pesan dengan kunci partisi yang sama berakhir di partisi EH yang sama. Saya mencoba mengikuti:

message1.partitionKey = "ABC";
message2.partitionKey = "ABC";

...tetapi tidak berhasil - untuk sejumlah besar pesan, saya perhatikan bahwa pesan dengan kunci partisi yang sama memiliki ID partisi yang berbeda.

Apakah ini bisa dilakukan saat mengirim dalam batch? Jika tidak, apakah itu akan berfungsi saat mengirim 1-by-1?

1
filip 11 Maret 2020, 21:48

1 menjawab

Jawaban Terbaik

Berdasarkan diskusi ini, sepertinya ini tidak mungkin dengan cara mengikat bekerja hari ini. Meskipun diskusinya tentang C #, hal yang sama akan berlaku untuk bahasa lain dengan baik.

Mempertimbangkan perubahan di Event Hubs SDK, setidaknya untuk C#, tampaknya ada sebuah opsi dengan mengikat EventHubClient secara langsung. Tapi ini tidak akan mungkin untuk bahasa lain.

Solusinya adalah langsung menggunakan Azure Event Hubs NodeJS SDK alih-alih menggunakan pengikatan.

1
PramodValavala-MSFT 13 Maret 2020, 09:58