

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

# 在自定义事件总线上对事件进行排序和重复事件删除
<a name="eb-custom-bus-ordering"></a>

订购是订阅者的财产。重复数据删除是在您发布时进行的。两者在不同的地方配置并解决了不同的问题。

## 排序
<a name="eb-custom-bus-ordering-fifo"></a>

订阅者`Type`是`UNORDERED`或`FIFO`。无序订阅者并行传送事件，以实现最高吞吐量。FIFO 订阅者按照事件*组中发布事件的顺序发送事件*。你可以在发布时分配群组，任一发布 API 的每个条目`SystemMetadata.EventGroupId`中都有。

事件组属于发布该群组的账号。两个以相同方式发布到共享总线的帐户会`EventGroupId`创建两个独立的组：它们的事件不是相对于彼此排序的，并且它们不共享一个组的吞吐量。有关群组限制，请参阅[自定义事件总线配额](eb-quota.md#eb-custom-bus-quotas)。

在 FIFO 订阅者中，无法传送的事件会暂停自己群组中的后期事件，而其他群组则继续进行。保持组标识符的界限，例如客户标识符或订单标识符，并且不要从无限制的输入中派生出它们。诸如 Amazon SQS FIFO 队列之类的 FIFO 目标会对组标识符强制执行自己的长度和字符限制。

FIFO 订阅者接受 `InvocationType` `EVENT` Lambda 目标，但随后订单只能保留到 Lambda 的异步队列中的移交为止。`REQUEST_RESPONSE`用于有序处理。

## 在发布时删除重复数据
<a name="eb-custom-bus-ordering-dedup"></a>

您可以通过对请求进行设置或在每个条目`DeduplicationType=CONTENT_BASED`上进行设置`SystemMetadata.DeduplicationId`来删除重复数据。
+ `--deduplication-configuration DeduplicationType=CONTENT_BASED`根据要求设置。 EventBridge 对每个条目的内容进行哈希处理，并隐藏已接受其哈希值的条目。
+ 省略`DeduplicationConfiguration`并在每个条目`SystemMetadata.DeduplicationId`上设置一个你已经拥有的密钥，例如来自你的制作者的等效密钥。

EventBridge 抑制在重复输入后 5 分钟（300 秒）内到达的副本。支票的范围仅限于您的账户，当条目带有`EventGroupId`：来自另一个账户或另一个群组的具有相同密钥的条目是不同的事件。不带的条目`EventGroupId`仍会在该总线上所有账户未分组的条目中进行重复数据删除。

总而言之，这可以提供一次精确的摄取：窗口内的重复发布在总线处被抑制，然后 FIFO 订阅者在其组中按顺序将每个已接受的事件交给其目标一次。

无论哪种方式，抑制的重复项都会返回`SuccessCode: DEDUPLICATED`。把它当作成功来对待。将每一次成功都算作新事件的代码夸大了交付。 EventBridge 将基于内容的重复数据删除列为一项单独的操作，因此最好`DeduplicationId`在您的制作人已经拥有密钥时使用。有关定价，请参阅 [Amazon EventBridge 定价](https://www.amazonaws.cn/eventbridge/pricing/)。有关重复数据删除适用的内容类型，请参阅[支持的内容类型：JSON、Avro、Protobuf 和原始字节](eb-custom-bus-open-formats.md)。