【发布时间】:2021-05-14 05:53:30
【问题描述】:
我们已经设置并运行了 SNS/SQS,但我们希望开始从 AWSSDK.* 转向 MassTransit。
我已经使用 InMemory 和 RabbitMq(通过 docker)成功地使用了 MassTransit。但是,我无法让 MassTransit 与 AWS 合作。我尝试的所有操作都会导致启动错误,例如“端点故障”
我能找到的所有示例似乎都允许 MassTransit 根据其自己的命名约定实例化任何必要的队列/主题,或者不显示完整的配置。我找不到解释使用什么值的示例。
假设我从 AWS 管理控制台获取了以下字符串。
SNS
Name: "SNS"
DisplayName: "SNS.DisplayName"
ARN: "SNS.ARN" <- this is what I give to AWSSDK.SimpleNotificationService
SNS -> Subscription
ARN: "SNS.Sub.ARN"
Endpoint: "SNS.Sub.Endpoint
Topic: "SNS.Sub.Topic"
SQS
Name: "SQS"
ARN: "SQS.ARN"
URL: "SQS.Url"
假设我有这样的配置:
.AddMassTransit(x =>
{
x.AddConsumer<MyConsumer>();
x.UsingAmazonSqs((context, cfg) =>
{
cfg.Host("us-west-2", h =>
{
h.AccessKey("access");
h.SecretKey("secret");
});
cfg.ReceiveEndpoint(">> What goes here? <<", e =>
{
e.UseMessageRetry(r => r
.Interval(2, TimeSpan.FromMilliseconds(5000))
);
e.ConfigureConsumeTopology = false;
e.Subscribe(">> What goes here? <<", s =>
{
s.TopicAttributes["DisplayName"] = ">> What goes here? <<";
// Is this needed?
// s.TopicSubscriptionAttributes["some-subscription-attribute"] = "some-attribute-value";
});
e.ConfigureConsumer<MyConsumer>(context);
});
});
})
.AddMassTransitHostedService()
为了能够发送/发布和使用消息,哪些值需要去往哪里? 我是否缺少任何配置步骤?
谢谢。
【问题讨论】:
标签: masstransit