From 67ebf8dcc14699aeba4009e45d3f435e794b7c75 Mon Sep 17 00:00:00 2001 From: Savorboard Date: Wed, 8 Jul 2020 16:22:56 +0800 Subject: [PATCH] Add aws sqs transport docs. (#597) --- docs/content/img/aws-sns-demo.png | Bin 0 -> 31569 bytes docs/content/img/aws-sqs-demo.png | Bin 0 -> 62756 bytes .../user-guide/en/transports/aws-sqs.md | 90 +++++++++++++++++ .../user-guide/en/transports/general.md | 1 + .../user-guide/zh/transports/aws-sqs.md | 91 ++++++++++++++++++ .../user-guide/zh/transports/general.md | 1 + 6 files changed, 183 insertions(+) create mode 100644 docs/content/img/aws-sns-demo.png create mode 100644 docs/content/img/aws-sqs-demo.png create mode 100644 docs/content/user-guide/en/transports/aws-sqs.md create mode 100644 docs/content/user-guide/zh/transports/aws-sqs.md diff --git a/docs/content/img/aws-sns-demo.png b/docs/content/img/aws-sns-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..f708c2b340d7ab04022ba92ee6c77b28edef34e2 GIT binary patch literal 31569 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 literal 0 HcmV?d00001 diff --git a/docs/content/img/aws-sqs-demo.png b/docs/content/img/aws-sqs-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6c791be0a2d053d2576a8a9fa10da94b78c225 GIT binary patch literal 62756 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 + { + x.UseAmazonSQS(opt=> + { + //AmazonSQSOptions + }); + // x.UseXXX ... + }); +} + +``` + +#### AmazonSQS Options + +CAP 直接对外提供的 AmazonSQSOptions 配置参数如下: + +NAME | DESCRIPTION | TYPE | DEFAULT +:---|:---|---|:--- +Region | AWS 所处的区域 | Amazon.RegionEndpoint | +Credentials | AWS AK SK信息 | Amazon.Runtime.AWSCredentials | + +如果你的项目运行在 AWS EC2 中,则不需要设置 Credentials,直接对 EC2 应用 IAM 策略即可。 + +Credentials 需要具有新增和订阅 SNS Topic,SQS Queue 等权限。 \ No newline at end of file diff --git a/docs/content/user-guide/en/transports/general.md b/docs/content/user-guide/en/transports/general.md index 1272bf4..4e764ba 100644 --- a/docs/content/user-guide/en/transports/general.md +++ b/docs/content/user-guide/en/transports/general.md @@ -9,6 +9,7 @@ CAP supports several transport methods: * [RabbitMQ](rabbitmq.md) * [Kafka](kafka.md) * [Azure Service Bus](azure-service-bus.md) +* [Amazon SQS](aws-sqs.md) * [In-Memory Queue](in-memory-queue.md) ## How to select a transport diff --git a/docs/content/user-guide/zh/transports/aws-sqs.md b/docs/content/user-guide/zh/transports/aws-sqs.md new file mode 100644 index 0000000..f60a0f1 --- /dev/null +++ b/docs/content/user-guide/zh/transports/aws-sqs.md @@ -0,0 +1,91 @@ +# Amazon SQS + +AWS SQS 是一种完全托管的消息队列服务,可让您分离和扩展微服务、分布式系统和无服务器应用程序。 + +AWS SNS 是一种高度可用、持久、安全、完全托管的发布/订阅消息收发服务,可以轻松分离微服务、分布式系统和无服务器应用程序。 + +## CAP 如何使用 AWS SNS & SQS + +### SNS + +由于 CAP 是基于 Topic 模式工作的,所以需要使用到 AWS SNS,SNS 简化了消息的发布订阅架构。 + +在 CAP 启动时会将所有的订阅名称注册为 SNS 的 Topic,你将会在管理控制台中看到所有已经注册的 Topic 列表。 + +由于 SNS 不支持使用 `.` `:` 等符号作为 Topic 的名称,所以我们进行了替换,我们将 `.` 替换为了 `-`,将 `:` 替换为了 `_` + +!!! note "注意事项" + Amazon SNS 当前允许发布的消息最大大小为 256KB + +举例,你的当前项目中有以下两个订阅者方法 + +```C# +[CapSubscribe("sample.sns.foo")] +public void TestFoo(DateTime value) +{ +} + +[CapSubscribe("sample.sns.bar")] +public void TestBar(DateTime value) +{ +} +``` + +在 CAP 启动后,在 AWS SNS 中你将看到 + +![img](/img/aws-sns-demo.png) + +### SQS + +针对每个消费者组,CAP 将创建一个与之对应的 SQS 队列,队列的名称为配置项中 DefaultGroup 的名称,类型为 Standard Queue 。 + +该 SQS 队列将订阅 SNS 中的 Topic ,如下图: + +![img](/img/aws-sns-demo.png) + +!!! warning "注意事项" + 由于 AWS SNS 的限制,当你减少订阅方法时,我们不会主动删除 AWS SNS 或者 SQS 上的相关 Topic 或 Queue,你需要手动删除他们。 + + +## 配置 + +要使用 AWS SQS 作为消息传输器,你需要从 NuGet 安装以下扩展包: + +```shell + +Install-Package DotNetCore.CAP.AmazonSQS + +``` + +然后,你可以在 `Startup.cs` 的 `ConfigureServices` 方法中添加基于 RabbitMQ 的配置项。 + +```csharp + +public void ConfigureServices(IServiceCollection services) +{ + // ... + + services.AddCap(x => + { + x.UseAmazonSQS(opt=> + { + //AmazonSQSOptions + }); + // x.UseXXX ... + }); +} + +``` + +#### AmazonSQS Options + +CAP 直接对外提供的 AmazonSQSOptions 配置参数如下: + +NAME | DESCRIPTION | TYPE | DEFAULT +:---|:---|---|:--- +Region | AWS 所处的区域 | Amazon.RegionEndpoint | +Credentials | AWS AK SK信息 | Amazon.Runtime.AWSCredentials | + +如果你的项目运行在 AWS EC2 中,则不需要设置 Credentials,直接对 EC2 应用 IAM 策略即可。 + +Credentials 需要具有新增和订阅 SNS Topic,SQS Queue 等权限。 \ No newline at end of file diff --git a/docs/content/user-guide/zh/transports/general.md b/docs/content/user-guide/zh/transports/general.md index 5df35e2..6fc75d1 100644 --- a/docs/content/user-guide/zh/transports/general.md +++ b/docs/content/user-guide/zh/transports/general.md @@ -9,6 +9,7 @@ CAP 支持以下几种运输方式: * [RabbitMQ](rabbitmq.md) * [Kafka](kafka.md) * [Azure Service Bus](azure-service-bus.md) +* [Amazon SQS](aws-sqs.md) * [In-Memory Queue](in-memory-queue.md) ## 怎么选择运输器