我有一个托管在 Azure Service Fabric 解决方案中的 MT 设置的工作配置。
我有一个发送消息的 API 和一个读取消息的无状态应用程序。
在无状态应用程序中,我告诉它使用类型的消息TestMessage
具有以下内容:
container.Register(Classes.FromThisAssembly().BasedOn<IConsumer>());
var busControl = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
{
var h = cfg.Host(new Uri("sb://xxxxx.servicebus.windows.net"), host =>
{
host.OperationTimeout = TimeSpan.FromSeconds(5);
host.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", "******");
});
cfg.ReceiveEndpoint(h, "fabric-test", ec =>
{
ec.UseMessageScope<ConsumeContext>();
ec.LoadFrom(_container);
});
});
在 API 中,我指定了结构测试队列并发送:
var p = await _bus.GetSendEndpoint(new Uri("sb://xxxxx.servicebus.windows.net/fabric-test"));
await p.Send(new TestMessage(Guid.NewGuid()));
然而,这一切都很好。
当我查看 azure 门户时,我可以看到已创建 3 个队列和 1 个主题:
- 桌面mmd2jga_stateless1_bus_qypoyyypboqbzhk5bdkg665cyh(队列)
- Desktopmmd2jga_webapi1_bus_qypoyyypboqbsitfbdkg665pdd(队列)
- 结构测试(队列)
- xxxxx.core.testmessage(主题)
虽然这一切都发生了work我想知道这一切是什么?
stateless1
是您的服务结构总线实例,即为该总线创建的临时队列。webapi1
是你的Web api总线实例,用于发送到无状态服务,也是一个临时队列。fabric-test
是您的接收端点的服务队列。namespace.core.testmessage
是您的消息类型,由您的服务端点订阅。
这全部由 MassTransit 构建,以支持您正在使用的消息结构。临时队列会在 5 分钟后消失,不用担心 - 它们只是用于寻址和维护与 ASB 的连接。
主题是在消息被发送时创建的发表该类型,以便您的服务端点接收它。如果您不想订阅特定服务端点的消息类型的主题,您可以指定SubscribeMessageTopics = false
在该端点的配置中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)