首页 > 解决方案 > MassTransit saga azure 服务总线接收端点设置?

问题描述

我正在尝试将 MassTransit 配置为使用 Azure 服务总线与自动状态机一起使用,但我看不到任何有关如何执行此操作的工作示例。我们之前使用的是使用以下代码配置的 RabbitMQ。我已改用 Azure 服务总线而不是 .CreateUsingRabbitMq() 操作,但似乎存在一些错误配置。官方文档在这方面有点轻。

  1. 操作系统:Windows 10 Pro
  2. Visual Studio 版本:2017
  3. 点网版本:2.2

我在 Azure 服务总线中创建了一个名为“SomeQueue”的队列

我有一个 StateSage cs.proj 负责使用 Automatonymous 处理 saga 工作流。在其配置中,我有以下内容

var bus = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
        {
            var host = cfg.Host(
                new Uri(AzureServiceBusConfigurationSettings.Uri),
                h =>
                {
                    h.SharedAccessSignature(s =>
                    {
                        s.KeyName = AzureServiceBusConfigurationSettings.KeyName;
                        s.SharedAccessKey = AzureServiceBusConfigurationSettings.ShareAccessKey;
                        s.TokenTimeToLive = TimeSpan.FromDays(1);
                        s.TokenScope = TokenScope.Namespace;
                    });
                });

            cfg.UseSerilog();

            cfg.ReceiveEndpoint(
                host,
                "order_saga",
                e =>
                {
                    e.UseInMemoryOutbox();
                    e.StateMachineSaga(someStateMachine, repository);
                });

        });

bus.Start();

现在我知道常量 AzureServiceBusConfigurationSettings.Uri 工作正常,因为我通过另一个项目将消息放在 Azure 服务总线中的队列上,该项目充当接收一些数据的 WebApi 将其发送到服务总线。

有没有人尝试过这样做或对 Automatonymous 有任何经验?

标签: .net-coreazureservicebusmasstransitautomatonymous

解决方案


推荐阅读