2

ラッパーを使用して、特定のパーティションを持つAzureSBLiteメッセージをポーリングしています。eventhubEventdata は 1 つのイベント ハブに送信され、ストリーム分析はそこから読み取られます。ストリーム分析を処理した後、特定のパーティション内の別のイベント ハブに書き込みます。

SenderEventHub[Partition-1]-->Stream Analytics -->ReciverEventHub[Partition-2]

受信部分は通常60-150s、受信メソッドを使用していますが、ここではそうではありません。ラッパーの下で何が起こっているのか、どこにあるのかわかりません。の出力を確認しstreamanalyticsました。ほぼ瞬時ですが、レシーバーは何も取得していません。


受信者コード


ServiceBusConnectionStringBuilder builder = new ServiceBusConnectionStringBuilder(Helper.ConnectionString);

                    builder.TransportType = TransportType.Amqp;

                    MessagingFactory MessagingFactory = MessagingFactory.CreateFromConnectionString(Helper.ConnectionString);

                    EventHubClient client = MessagingFactory.CreateEventHubClient(eventHubEntity as string);

                    EventHubConsumerGroup group = client.GetConsumerGroup(Helper.ConsumerGroup);

                    EventHubReceiver receiver = group.CreateReceiver(Helper.PartitionReciever); 

                    do
                    {
                        EventData data = receiver.Receive();

                        if (data != null)
                        {
                            Debug.WriteLine(Helper.Currentoffset = data.Offset);

                            var msg = JsonConvert.DeserializeObject<EventBody>(Encoding.UTF8.GetString(data.GetBytes()));

                            if (msg != null) Helper.Speak(msg.CommandName);
                        }
                    } while (true);

ここに画像の説明を入力

同じ EventHub で試してみましたが、2 つの異なるパーティションの方が悪いです。


ここに画像の説明を入力

注: Azure.SeriveBus は Windows 10 IoT Core ではサポートされていないため、EventProcessorHost を使用できません。

4

0 に答える 0