0

Azure クラウド サービスで SignalR を実行しており、Azure メッセージ バスを使用してインスタンス間で通信しようとしました。

次のコードを使用して、メッセージ バスに接続しました。

GlobalHost.DependencyResolver.UseWindowsAzureServiceBus(
                "Endpoint=sb://<snip>;SharedSecretIssuer=<snip>;SharedSecretValue=<snip>",
                1, /* number of Instances */
                5 /* number of Topics*/
                );

ただし、この行が配置されている場合、実際に返されるメッセージは約 50% にすぎません。

この行をコメントアウトすると、メッセージは 100% 処理されますが、実行できるインスタンスは 1 つに制限されます。

Azure Service Bus に関して何か特別なことをする必要はありますか?

また、インスタンス/トピックの数によって実際にどのような違いが生じるのでしょうか?

4

1 に答える 1

2

ジョン、

インスタンスの数は、各トピックのサブスクリプションの数に変換されると思います。したがって、この数は、ホストするインスタンスの数(RoleEnvironment.CurrentRoleInstance.Role.Instances.Count)と同じである必要があります。

この値が2ではなく1に設定されているため、メッセージが欠落していると思います(これはインスタンス数だと思います)

トピックの数により、インスタンス間でメッセージをチャネル化し、サービスバスのクォータのいずれかに達した場合にスループットを向上させるために使用されるトピックが増えます。

よろしく、イヴ

于 2013-02-06T10:34:00.273 に答える