

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 常见问题解答
<a name="faq"></a>

## 如何组合使用不同的集成模式？
<a name="faq1"></a>

大多数情况下，您需要组合使用多种集成模式。例如，您可以使用 AWS Step Functions 通过声明检查模式，编排调用远程服务的流程。或者，您可能有一个精心设计的流程，先将消息放入队列，进而触发预先编排的服务。

## 使用微服务架构的主要好处是什么？
<a name="faq2"></a>

主要优势包括独立扩缩服务、改进故障隔离、通过团队并行工作提高开发速度，以及持续交付和部署（CI/CD）的能力。

## 如何在这些模式中实施错误处理？
<a name="faq3"></a>

您可以使用 AWS 服务中的内置机制实施错误处理。例如，可以使用重试逻辑配置 AWS Lambda 函数，而 Amazon SQS 支持死信队列来处理持续故障。此外，Step Functions 还提供工作流级别的错误处理和重试机制。

## 在异步通信中使用声明检查模式有哪些优势？
<a name="faq4"></a>

采用声明检查模式时，客户提交请求时会收到一个标识符。此标识符可以稍后用于检查状态和检索结果。这种模式提供了一种无需同步等待即可轮询结果的机制，可让客户受益。有关更多信息，请参阅本指南中之前的[声明检查](asynchronous.md#claim-check)部分。

## 回调模式如何改善微服务中的异步通信？
<a name="faq5"></a>

回调模式允许客户端提供一个位置，供服务在处理完成后联系，从而改善了异步通信。这样，客户端无需等待响应，即可继续执行其他任务。有关更多信息，请参阅本指南中之前的[回调](asynchronous.md#callback)部分。

## 我能否使用所描述的模式在微服务中实施双向通信？
<a name="faq6"></a>

您可以通过在客户端与服务之间创建有状态的连接来实施双向通信，这样它们就可以异步发送和处理消息。这要求服务为每个客户端提供一个开放连接。有关更多信息，请参阅本指南中之前的[双向通信](asynchronous.md#bidirectional)部分。

## 如何优化 Lambda 函数在异步通信模式中的使用？
<a name="faq7"></a>

您可以通过以下方式优化 Lambda 函数：确保 Lambda 函数具有幂等性来处理潜在的消息重复问题；使用 Amazon SQS 功能（例如消息组）进行排序；实施长轮询以降低成本。此外，您可以监控执行指标以确定优化机会。

## 使用 Amazon SNS 和 EventBridge 使用该 pub/sub 模式有什么主要区别？
<a name="faq8"></a>

Amazon SNS 会向所有订阅用户发送一则消息，其中可能包含部分订阅者不需要的数据。Amazon EventBridge 允许您拥有与单个事件匹配的多个规则，每个规则触发不同的下游服务或操作，从而实现更精细的控制。有关更多信息，请参阅本指南前[EventBridge](eventbridge.md)面的 [Amazon SNS](sns.md) 和章节。