This is an automated email from the ASF dual-hosted git repository.
jinrongtong pushed a commit to branch new-official-website
in repository https://gitbox.apache.org/repos/asf/rocketmq-site.git
The following commit(s) were added to refs/heads/new-official-website by this
push:
new f2d2db9b2 Fix Docs of EventBridge (#423)
f2d2db9b2 is described below
commit f2d2db9b29a8f56af3ee541f5a1b236f0ff325a4
Author: Jack Tsai <[email protected]>
AuthorDate: Tue Jan 10 15:15:22 2023 +0800
Fix Docs of EventBridge (#423)
---
.../25RocketMQEventBridgeConcepts.md | 14 ++++++-------
.../26RocketMQEventBridgeOverview.md | 22 ++++++++++-----------
.../27RocketMQEventBridgeQuickStart.md | 8 ++++----
.../25RocketMQEventBridgeConcepts.md | 14 ++++++-------
.../26RocketMQEventBridgeOverview.md | 22 ++++++++++-----------
.../27RocketMQEventBridgeQuickStart.md | 8 ++++----
.../current/picture/07eventbridge/EventCenter.png | Bin 0 -> 164602 bytes
.../current/picture/07eventbridge/EventRule.png | Bin 0 -> 50784 bytes
.../picture/07eventbridge/HowEventBridgeWork.png | Bin 0 -> 154312 bytes
.../picture/07eventbridge/MessageWithEvent.png | Bin 0 -> 33964 bytes
.../current/picture/07eventbridge/Started.png | Bin 0 -> 481733 bytes
.../current/picture/07eventbridge/ThreeStages.png | Bin 0 -> 127216 bytes
.../25RocketMQEventBridgeConcepts.md | 14 ++++++-------
.../26RocketMQEventBridgeOverview.md | 22 ++++++++++-----------
.../27RocketMQEventBridgeQuickStart.md | 8 ++++----
.../picture/07eventbridge/EventCenter.png | Bin 0 -> 164602 bytes
.../picture/07eventbridge/EventRule.png | Bin 0 -> 50784 bytes
.../picture/07eventbridge/HowEventBridgeWork.png | Bin 0 -> 154312 bytes
.../picture/07eventbridge/MessageWithEvent.png | Bin 0 -> 33964 bytes
.../version-5.0/picture/07eventbridge/Started.png | Bin 0 -> 481733 bytes
.../picture/07eventbridge/ThreeStages.png | Bin 0 -> 127216 bytes
.../25RocketMQEventBridgeConcepts.md | 14 ++++++-------
.../26RocketMQEventBridgeOverview.md | 22 ++++++++++-----------
.../27RocketMQEventBridgeQuickStart.md | 8 ++++----
.../picture/07eventbridge/EventCenter.png | Bin 0 -> 164602 bytes
.../picture/07eventbridge/EventRule.png | Bin 0 -> 50784 bytes
.../picture/07eventbridge/HowEventBridgeWork.png | Bin 0 -> 154312 bytes
.../picture/07eventbridge/MessageWithEvent.png | Bin 0 -> 33964 bytes
.../version-5.0/picture/07eventbridge/Started.png | Bin 0 -> 481733 bytes
.../picture/07eventbridge/ThreeStages.png | Bin 0 -> 127216 bytes
30 files changed, 88 insertions(+), 88 deletions(-)
diff --git a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
b/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
index ab42074a8..219ca620c 100644
--- a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
+++ b/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 核心概念
+# RocketMQ EventBridge 核心概念
理解EventBridge中的核心概念,能帮助我们更好的分析和使用EventBridge。本文重点介绍下EventBridge中包含的术语:
@@ -11,24 +11,24 @@
下面,我们具体展开:
-### EventSource
+## EventSource
事件源,代表事件发生的源头,用来描述一类事件,一般与微服务系统一一对应。比如:交易事件源、考勤事件源等等。事件源,是对事件一个大的分类,一个事件源下面,往往会包含多种事件类型(type),比如交易事件源下面,可能包含:下单事件、支付事件、退货事件等等。
另外,需要值得注意的是,事件源并不用来描述发生事件的实体,取而代之的是,在CloudEvent中,我们一般选用subject来表示产生这个事件的实体资源。事件源有点像市场经济大卖场中的大类分区,例如:生鲜区、日化日用区、家用电器区等等。在事件中心这个"大卖场",我们可以通过事件源快速的找到我们需要的事件。
-### EventBus
+## EventBus
事件总线是存储事件的地方,其下可以有多种实现,包括Local、RocketMQ、Kafka等。
事件生产者发送事件的时候,必须指定事件总线。事件总线是EventBridge的一等公民,其他所有资源都围绕事件总线形成逻辑上的隔离,即:事件源、事件规则必须都隶属于某一个事件总线下。不同事件总线下的事件源和事件规则可以重名,但是同一个事件总线下的事件源和规则必须不重名。
-### EventRule
+## EventRule
当消费者需要订阅事件时,可以通过事件规则配置过滤和转换信息,将事件推送到指定的目标端。所以,事件规则包含三部分:事件过滤+事件转换+事件目标。

-### FilterPattern
+## FilterPattern
通过事件过滤模式,我们可以对事件总线上的事件进行过滤,只将目标端需要的事件推送过去,以减少不必要的开通,同时减轻消费者
Target端的压力。目前EventBridge支持的事件过滤能力包括:
* 指定值匹配
@@ -41,7 +41,7 @@ Target端的压力。目前EventBridge支持的事件过滤能力包括:
(详细介绍待见其他文章)
-### Transform
+## Transform
生产者的事件可能会同时被多个消费者订阅,但不同消费者需要的数据格式往往不同。这个时候,需要我们将生产者的事件,转换成消费者
Target端需要的事件格式。目前EventBridge支持的事件转换能力包括:
* 完整事件:不做转换,直接投递原生 CloudEvents;
@@ -51,7 +51,7 @@ Target端需要的事件格式。目前EventBridge支持的事件转换能力包
(详细介绍待见其他文章)
-### EventTarget
+## EventTarget
事件目标端,也即我们的事件消费者。在EventBridge架构中,消费者只需要按照自己的业务领域模型设计,提供一个公共的API(这个API既可用来接收事件,同时也用来前台管控面操作),EventBridge就会按照API定义需要的数据格式,将事件安全、可靠的推送给
Target消费者。
diff --git a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
b/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
index 9c5257d8a..5644cbfb6 100644
--- a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
+++ b/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
@@ -1,10 +1,10 @@
-## Apache RocketMQ EventBridge 概览
+# RocketMQ EventBridge 概览
RocketMQ EventBridge
致力于帮助用户构建高可靠、低耦合、高性能的事件驱动架构。在事件驱动架构中,微服务不需要主动订阅外部消息,而是可以把所有触发微服务系统发生改变的入口统一到API,并只需要关注当前微服务自己的业务领域模型定义和设计API,无需通过大量的胶水代码去适配解析外部服务的消息。EventBridge
则会负责将外部服务产生的事件安全的、可靠的适配并投递到当前微服务设计的API。
那什么时候我们使用RocketMQ消息,什么时候使用EventBridge事件? 事件的含义是什么,和消息有什么区别?
-### 消息与事件
+## 消息与事件
我们给事件做了如下定义:
```text
事件是指过去已经发生的事,尤其是比较重要的事。
@@ -15,8 +15,8 @@ RocketMQ EventBridge 致力于帮助用户构建高可靠、低耦合、高性
消息包含Command消息和Event消息。Command消息是外部系统发送给本系统的一条操作命令(如上图左半部分);Event消息则是本系统收到Command操作请求,系统内部发生改变之后而产生了事件(如上图右半部分);
-### 事件的四个特性
-#### 1、已发生
+## 事件的四个特性
+### 1、已发生
事件,一定是“已发生”的。
“已发生”同时意味着是不可变的。这个特性非常重要,在我们处理事件、分析事件的时候,这就意味着,我们绝对可以相信这些事件,只要是收到的事件,一定是系统真实发生过的行为。
Command,则代表一种操作请求,是否真的发生不可得知,比如:
@@ -33,7 +33,7 @@ Event,则是明确已经发生的事情。比如
* A账户收到了10w
```
-#### 2、无期望
+### 2、无期望
```text
事件是客观的描述一个事物的状态或属性值的变化,但对于如何处理事件本身并没有做任何期望。
相比之下,Command和Query则都是有期望的,他们希望系统做出改变或则返回结果,但是Event只是客观描述系统的一个变化。
```
@@ -43,14 +43,14 @@ Event,则是明确已经发生的事情。比如
* 事件:有点像"市场经济",商品被生产出来,摆放在商场的大橱窗里,消费者谁看着觉得好就买回去,如果一直没人买,商品可能就过期浪费了。
* Command消息:则有点像"计划经济",按需生产,指定分配对象,也很少产生浪费。
-#### 3、天然有序且唯一
+### 3、天然有序且唯一
```text
同一个实体,不能同时发生A又发生B,必有先后关系;如果是,则这两个事件必属于不同的事件类型。
```
比如:针对同一个交通信号灯,不能既变成绿灯,又变成红灯,同一时刻,只能变成一种状态。
如果我们看到了两个内容一样的事件,那么一定是发生了两次,而且一次在前,一次在后。这对于我们处理数据最终一致性、以及系统行为分析(比如ABA场景)都很有价值:我们看到的,不光光是系统的一个最终结果,而是看到变成这个结果之前的,一系列中间过程。
-#### 4、具像化
+### 4、具像化
事件会尽可能的把“案发现场”完整的记录下来,因为事件不知道消费者会如何使用它,所以会做到尽量的详尽。包括:
```text
什么时候发生的事件?
@@ -60,8 +60,8 @@ Event,则是明确已经发生的事情。比如
... ...
```
对比我们常见的消息,因为上下游一般是确定的,常常为了性能和传输效率,则会做到尽可能的精简,只要满足“计划经济”指定安排的消费者需求即可。
-### RocketMQ EventBridge 的典型应用场景
-#### 场景1:事件通知
+## RocketMQ EventBridge 的典型应用场景
+### 场景1:事件通知
微服务中,我们常常会遇到需要把一个微服务中生产的消息,通知给其他消费者。这里我们对比三种方式:
A:强依赖方式
@@ -79,12 +79,12 @@ B:完全解耦方式

-#### 场景2:系统间集成
+### 场景2:系统间集成
场景1主要面向一个产品内部,各个微服务之间的事件通信。场景2则是主要面向多个产品之间的事件通信。在一个企业中,我们常常会用到多款产品,而且很多产品可能并不是我们自己开发的,而是购买的外部SaaS服务。这个时候,如果我们希望事件在不同外部SaaS产品之间流转是比较困难的,因为这些外部SaaS产品不是我们自己开发的,无法轻易的修改其中的代码。EventBridge提供的事件中心能力,能够帮助收集各个产品产生的事件,并很好的组织管理起来,就像大卖场橱窗里的商品,精心摆放准备好,配备介绍说明书,供消费者挑选,同时提供送货上门服务。

-### RocketMQ EventBridge 是如何工作的?
+## RocketMQ EventBridge 是如何工作的?
为了解决上述两个应用场景中提到的问题,EventBridge从5个方便入手:
**第1. 确定事件标准:**
diff --git a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
b/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
index d21175400..274b0f029 100644
--- a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
+++ b/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 快速开始
+# RocketMQ EventBridge 快速开始
RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一个Runtime来订阅并推送事件。这里我们选择 Apache
RocketMQ 作为我们的消息服务,选择 Apache RocketMQ Connect
作为我们的Runtime来订阅和推送事件。当然,您也可以选择其他消息服务代替,EventBridge并不对此做限制。未来EventBridge也计划基于OpenMessaging
Connect API 实现自己的Runtime,以便更好的提供事件驱动服务。
@@ -7,11 +7,11 @@ RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一
* 64位操作系统,推荐 Linux/Unix/macOS
* 64位 JDK 1.8+
-### 部署Apache RocketMQ
+## 部署Apache RocketMQ
Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为EventBus的默认存储。这里您可以根据这个手册快速部署: [Apache
RocketMQ Quick Start](https://rocketmq.apache.org/docs/quick-start/)
-### 部署Apache RocketMQ Connect
+## 部署Apache RocketMQ Connect
我们使用Apache RocketMQ Connect作为我们的默认Runtime,来连接外部的上下游服务,您可以根据手册完成部署: [RocketMQ
Connect Quick Start](https://github.com/apache/rocketmq-connect) 。在部署 Apache
RocketMQ Connect 之前,您应该下载下面的插件,并将其放在rocketmq-connect中配置参数“pluginPaths”所定义的目录下:
@@ -22,7 +22,7 @@ Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为Even
*
[connect-filter-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-filter-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
*
[connect-eventbridge-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-eventbridge-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
-### 部署Apache RocketMQ EventBridge
+## 部署RocketMQ EventBridge
* 获取 EventBridge
diff --git a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
b/i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/25RocketMQEventBridgeConcepts.md
similarity index 96%
copy from docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
copy to
i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/25RocketMQEventBridgeConcepts.md
index ab42074a8..219ca620c 100644
--- a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
+++
b/i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/25RocketMQEventBridgeConcepts.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 核心概念
+# RocketMQ EventBridge 核心概念
理解EventBridge中的核心概念,能帮助我们更好的分析和使用EventBridge。本文重点介绍下EventBridge中包含的术语:
@@ -11,24 +11,24 @@
下面,我们具体展开:
-### EventSource
+## EventSource
事件源,代表事件发生的源头,用来描述一类事件,一般与微服务系统一一对应。比如:交易事件源、考勤事件源等等。事件源,是对事件一个大的分类,一个事件源下面,往往会包含多种事件类型(type),比如交易事件源下面,可能包含:下单事件、支付事件、退货事件等等。
另外,需要值得注意的是,事件源并不用来描述发生事件的实体,取而代之的是,在CloudEvent中,我们一般选用subject来表示产生这个事件的实体资源。事件源有点像市场经济大卖场中的大类分区,例如:生鲜区、日化日用区、家用电器区等等。在事件中心这个"大卖场",我们可以通过事件源快速的找到我们需要的事件。
-### EventBus
+## EventBus
事件总线是存储事件的地方,其下可以有多种实现,包括Local、RocketMQ、Kafka等。
事件生产者发送事件的时候,必须指定事件总线。事件总线是EventBridge的一等公民,其他所有资源都围绕事件总线形成逻辑上的隔离,即:事件源、事件规则必须都隶属于某一个事件总线下。不同事件总线下的事件源和事件规则可以重名,但是同一个事件总线下的事件源和规则必须不重名。
-### EventRule
+## EventRule
当消费者需要订阅事件时,可以通过事件规则配置过滤和转换信息,将事件推送到指定的目标端。所以,事件规则包含三部分:事件过滤+事件转换+事件目标。

-### FilterPattern
+## FilterPattern
通过事件过滤模式,我们可以对事件总线上的事件进行过滤,只将目标端需要的事件推送过去,以减少不必要的开通,同时减轻消费者
Target端的压力。目前EventBridge支持的事件过滤能力包括:
* 指定值匹配
@@ -41,7 +41,7 @@ Target端的压力。目前EventBridge支持的事件过滤能力包括:
(详细介绍待见其他文章)
-### Transform
+## Transform
生产者的事件可能会同时被多个消费者订阅,但不同消费者需要的数据格式往往不同。这个时候,需要我们将生产者的事件,转换成消费者
Target端需要的事件格式。目前EventBridge支持的事件转换能力包括:
* 完整事件:不做转换,直接投递原生 CloudEvents;
@@ -51,7 +51,7 @@ Target端需要的事件格式。目前EventBridge支持的事件转换能力包
(详细介绍待见其他文章)
-### EventTarget
+## EventTarget
事件目标端,也即我们的事件消费者。在EventBridge架构中,消费者只需要按照自己的业务领域模型设计,提供一个公共的API(这个API既可用来接收事件,同时也用来前台管控面操作),EventBridge就会按照API定义需要的数据格式,将事件安全、可靠的推送给
Target消费者。
diff --git a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
b/i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/26RocketMQEventBridgeOverview.md
similarity index 95%
copy from docs/07-eventbridge/26RocketMQEventBridgeOverview.md
copy to
i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/26RocketMQEventBridgeOverview.md
index 9c5257d8a..5644cbfb6 100644
--- a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
+++
b/i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/26RocketMQEventBridgeOverview.md
@@ -1,10 +1,10 @@
-## Apache RocketMQ EventBridge 概览
+# RocketMQ EventBridge 概览
RocketMQ EventBridge
致力于帮助用户构建高可靠、低耦合、高性能的事件驱动架构。在事件驱动架构中,微服务不需要主动订阅外部消息,而是可以把所有触发微服务系统发生改变的入口统一到API,并只需要关注当前微服务自己的业务领域模型定义和设计API,无需通过大量的胶水代码去适配解析外部服务的消息。EventBridge
则会负责将外部服务产生的事件安全的、可靠的适配并投递到当前微服务设计的API。
那什么时候我们使用RocketMQ消息,什么时候使用EventBridge事件? 事件的含义是什么,和消息有什么区别?
-### 消息与事件
+## 消息与事件
我们给事件做了如下定义:
```text
事件是指过去已经发生的事,尤其是比较重要的事。
@@ -15,8 +15,8 @@ RocketMQ EventBridge 致力于帮助用户构建高可靠、低耦合、高性
消息包含Command消息和Event消息。Command消息是外部系统发送给本系统的一条操作命令(如上图左半部分);Event消息则是本系统收到Command操作请求,系统内部发生改变之后而产生了事件(如上图右半部分);
-### 事件的四个特性
-#### 1、已发生
+## 事件的四个特性
+### 1、已发生
事件,一定是“已发生”的。
“已发生”同时意味着是不可变的。这个特性非常重要,在我们处理事件、分析事件的时候,这就意味着,我们绝对可以相信这些事件,只要是收到的事件,一定是系统真实发生过的行为。
Command,则代表一种操作请求,是否真的发生不可得知,比如:
@@ -33,7 +33,7 @@ Event,则是明确已经发生的事情。比如
* A账户收到了10w
```
-#### 2、无期望
+### 2、无期望
```text
事件是客观的描述一个事物的状态或属性值的变化,但对于如何处理事件本身并没有做任何期望。
相比之下,Command和Query则都是有期望的,他们希望系统做出改变或则返回结果,但是Event只是客观描述系统的一个变化。
```
@@ -43,14 +43,14 @@ Event,则是明确已经发生的事情。比如
* 事件:有点像"市场经济",商品被生产出来,摆放在商场的大橱窗里,消费者谁看着觉得好就买回去,如果一直没人买,商品可能就过期浪费了。
* Command消息:则有点像"计划经济",按需生产,指定分配对象,也很少产生浪费。
-#### 3、天然有序且唯一
+### 3、天然有序且唯一
```text
同一个实体,不能同时发生A又发生B,必有先后关系;如果是,则这两个事件必属于不同的事件类型。
```
比如:针对同一个交通信号灯,不能既变成绿灯,又变成红灯,同一时刻,只能变成一种状态。
如果我们看到了两个内容一样的事件,那么一定是发生了两次,而且一次在前,一次在后。这对于我们处理数据最终一致性、以及系统行为分析(比如ABA场景)都很有价值:我们看到的,不光光是系统的一个最终结果,而是看到变成这个结果之前的,一系列中间过程。
-#### 4、具像化
+### 4、具像化
事件会尽可能的把“案发现场”完整的记录下来,因为事件不知道消费者会如何使用它,所以会做到尽量的详尽。包括:
```text
什么时候发生的事件?
@@ -60,8 +60,8 @@ Event,则是明确已经发生的事情。比如
... ...
```
对比我们常见的消息,因为上下游一般是确定的,常常为了性能和传输效率,则会做到尽可能的精简,只要满足“计划经济”指定安排的消费者需求即可。
-### RocketMQ EventBridge 的典型应用场景
-#### 场景1:事件通知
+## RocketMQ EventBridge 的典型应用场景
+### 场景1:事件通知
微服务中,我们常常会遇到需要把一个微服务中生产的消息,通知给其他消费者。这里我们对比三种方式:
A:强依赖方式
@@ -79,12 +79,12 @@ B:完全解耦方式

-#### 场景2:系统间集成
+### 场景2:系统间集成
场景1主要面向一个产品内部,各个微服务之间的事件通信。场景2则是主要面向多个产品之间的事件通信。在一个企业中,我们常常会用到多款产品,而且很多产品可能并不是我们自己开发的,而是购买的外部SaaS服务。这个时候,如果我们希望事件在不同外部SaaS产品之间流转是比较困难的,因为这些外部SaaS产品不是我们自己开发的,无法轻易的修改其中的代码。EventBridge提供的事件中心能力,能够帮助收集各个产品产生的事件,并很好的组织管理起来,就像大卖场橱窗里的商品,精心摆放准备好,配备介绍说明书,供消费者挑选,同时提供送货上门服务。

-### RocketMQ EventBridge 是如何工作的?
+## RocketMQ EventBridge 是如何工作的?
为了解决上述两个应用场景中提到的问题,EventBridge从5个方便入手:
**第1. 确定事件标准:**
diff --git a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
b/i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/27RocketMQEventBridgeQuickStart.md
similarity index 97%
copy from docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
copy to
i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/27RocketMQEventBridgeQuickStart.md
index d21175400..274b0f029 100644
--- a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
+++
b/i18n/en/docusaurus-plugin-content-docs/current/07-eventbridge/27RocketMQEventBridgeQuickStart.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 快速开始
+# RocketMQ EventBridge 快速开始
RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一个Runtime来订阅并推送事件。这里我们选择 Apache
RocketMQ 作为我们的消息服务,选择 Apache RocketMQ Connect
作为我们的Runtime来订阅和推送事件。当然,您也可以选择其他消息服务代替,EventBridge并不对此做限制。未来EventBridge也计划基于OpenMessaging
Connect API 实现自己的Runtime,以便更好的提供事件驱动服务。
@@ -7,11 +7,11 @@ RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一
* 64位操作系统,推荐 Linux/Unix/macOS
* 64位 JDK 1.8+
-### 部署Apache RocketMQ
+## 部署Apache RocketMQ
Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为EventBus的默认存储。这里您可以根据这个手册快速部署: [Apache
RocketMQ Quick Start](https://rocketmq.apache.org/docs/quick-start/)
-### 部署Apache RocketMQ Connect
+## 部署Apache RocketMQ Connect
我们使用Apache RocketMQ Connect作为我们的默认Runtime,来连接外部的上下游服务,您可以根据手册完成部署: [RocketMQ
Connect Quick Start](https://github.com/apache/rocketmq-connect) 。在部署 Apache
RocketMQ Connect 之前,您应该下载下面的插件,并将其放在rocketmq-connect中配置参数“pluginPaths”所定义的目录下:
@@ -22,7 +22,7 @@ Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为Even
*
[connect-filter-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-filter-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
*
[connect-eventbridge-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-eventbridge-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
-### 部署Apache RocketMQ EventBridge
+## 部署RocketMQ EventBridge
* 获取 EventBridge
diff --git
a/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/EventCenter.png
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/EventCenter.png
new file mode 100644
index 000000000..e52d58afb
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/EventCenter.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/EventRule.png
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/EventRule.png
new file mode 100644
index 000000000..c72139db3
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/EventRule.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/HowEventBridgeWork.png
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/HowEventBridgeWork.png
new file mode 100644
index 000000000..f8c27c8d0
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/HowEventBridgeWork.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/MessageWithEvent.png
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/MessageWithEvent.png
new file mode 100644
index 000000000..3b48e3d65
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/MessageWithEvent.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/Started.png
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/Started.png
new file mode 100644
index 000000000..e850d3256
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/Started.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/ThreeStages.png
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/ThreeStages.png
new file mode 100644
index 000000000..f0f34f554
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/current/picture/07eventbridge/ThreeStages.png
differ
diff --git a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/25RocketMQEventBridgeConcepts.md
similarity index 96%
copy from docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
copy to
i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/25RocketMQEventBridgeConcepts.md
index ab42074a8..219ca620c 100644
--- a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
+++
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/25RocketMQEventBridgeConcepts.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 核心概念
+# RocketMQ EventBridge 核心概念
理解EventBridge中的核心概念,能帮助我们更好的分析和使用EventBridge。本文重点介绍下EventBridge中包含的术语:
@@ -11,24 +11,24 @@
下面,我们具体展开:
-### EventSource
+## EventSource
事件源,代表事件发生的源头,用来描述一类事件,一般与微服务系统一一对应。比如:交易事件源、考勤事件源等等。事件源,是对事件一个大的分类,一个事件源下面,往往会包含多种事件类型(type),比如交易事件源下面,可能包含:下单事件、支付事件、退货事件等等。
另外,需要值得注意的是,事件源并不用来描述发生事件的实体,取而代之的是,在CloudEvent中,我们一般选用subject来表示产生这个事件的实体资源。事件源有点像市场经济大卖场中的大类分区,例如:生鲜区、日化日用区、家用电器区等等。在事件中心这个"大卖场",我们可以通过事件源快速的找到我们需要的事件。
-### EventBus
+## EventBus
事件总线是存储事件的地方,其下可以有多种实现,包括Local、RocketMQ、Kafka等。
事件生产者发送事件的时候,必须指定事件总线。事件总线是EventBridge的一等公民,其他所有资源都围绕事件总线形成逻辑上的隔离,即:事件源、事件规则必须都隶属于某一个事件总线下。不同事件总线下的事件源和事件规则可以重名,但是同一个事件总线下的事件源和规则必须不重名。
-### EventRule
+## EventRule
当消费者需要订阅事件时,可以通过事件规则配置过滤和转换信息,将事件推送到指定的目标端。所以,事件规则包含三部分:事件过滤+事件转换+事件目标。

-### FilterPattern
+## FilterPattern
通过事件过滤模式,我们可以对事件总线上的事件进行过滤,只将目标端需要的事件推送过去,以减少不必要的开通,同时减轻消费者
Target端的压力。目前EventBridge支持的事件过滤能力包括:
* 指定值匹配
@@ -41,7 +41,7 @@ Target端的压力。目前EventBridge支持的事件过滤能力包括:
(详细介绍待见其他文章)
-### Transform
+## Transform
生产者的事件可能会同时被多个消费者订阅,但不同消费者需要的数据格式往往不同。这个时候,需要我们将生产者的事件,转换成消费者
Target端需要的事件格式。目前EventBridge支持的事件转换能力包括:
* 完整事件:不做转换,直接投递原生 CloudEvents;
@@ -51,7 +51,7 @@ Target端需要的事件格式。目前EventBridge支持的事件转换能力包
(详细介绍待见其他文章)
-### EventTarget
+## EventTarget
事件目标端,也即我们的事件消费者。在EventBridge架构中,消费者只需要按照自己的业务领域模型设计,提供一个公共的API(这个API既可用来接收事件,同时也用来前台管控面操作),EventBridge就会按照API定义需要的数据格式,将事件安全、可靠的推送给
Target消费者。
diff --git a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/26RocketMQEventBridgeOverview.md
similarity index 95%
copy from docs/07-eventbridge/26RocketMQEventBridgeOverview.md
copy to
i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/26RocketMQEventBridgeOverview.md
index 9c5257d8a..5644cbfb6 100644
--- a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
+++
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/26RocketMQEventBridgeOverview.md
@@ -1,10 +1,10 @@
-## Apache RocketMQ EventBridge 概览
+# RocketMQ EventBridge 概览
RocketMQ EventBridge
致力于帮助用户构建高可靠、低耦合、高性能的事件驱动架构。在事件驱动架构中,微服务不需要主动订阅外部消息,而是可以把所有触发微服务系统发生改变的入口统一到API,并只需要关注当前微服务自己的业务领域模型定义和设计API,无需通过大量的胶水代码去适配解析外部服务的消息。EventBridge
则会负责将外部服务产生的事件安全的、可靠的适配并投递到当前微服务设计的API。
那什么时候我们使用RocketMQ消息,什么时候使用EventBridge事件? 事件的含义是什么,和消息有什么区别?
-### 消息与事件
+## 消息与事件
我们给事件做了如下定义:
```text
事件是指过去已经发生的事,尤其是比较重要的事。
@@ -15,8 +15,8 @@ RocketMQ EventBridge 致力于帮助用户构建高可靠、低耦合、高性
消息包含Command消息和Event消息。Command消息是外部系统发送给本系统的一条操作命令(如上图左半部分);Event消息则是本系统收到Command操作请求,系统内部发生改变之后而产生了事件(如上图右半部分);
-### 事件的四个特性
-#### 1、已发生
+## 事件的四个特性
+### 1、已发生
事件,一定是“已发生”的。
“已发生”同时意味着是不可变的。这个特性非常重要,在我们处理事件、分析事件的时候,这就意味着,我们绝对可以相信这些事件,只要是收到的事件,一定是系统真实发生过的行为。
Command,则代表一种操作请求,是否真的发生不可得知,比如:
@@ -33,7 +33,7 @@ Event,则是明确已经发生的事情。比如
* A账户收到了10w
```
-#### 2、无期望
+### 2、无期望
```text
事件是客观的描述一个事物的状态或属性值的变化,但对于如何处理事件本身并没有做任何期望。
相比之下,Command和Query则都是有期望的,他们希望系统做出改变或则返回结果,但是Event只是客观描述系统的一个变化。
```
@@ -43,14 +43,14 @@ Event,则是明确已经发生的事情。比如
* 事件:有点像"市场经济",商品被生产出来,摆放在商场的大橱窗里,消费者谁看着觉得好就买回去,如果一直没人买,商品可能就过期浪费了。
* Command消息:则有点像"计划经济",按需生产,指定分配对象,也很少产生浪费。
-#### 3、天然有序且唯一
+### 3、天然有序且唯一
```text
同一个实体,不能同时发生A又发生B,必有先后关系;如果是,则这两个事件必属于不同的事件类型。
```
比如:针对同一个交通信号灯,不能既变成绿灯,又变成红灯,同一时刻,只能变成一种状态。
如果我们看到了两个内容一样的事件,那么一定是发生了两次,而且一次在前,一次在后。这对于我们处理数据最终一致性、以及系统行为分析(比如ABA场景)都很有价值:我们看到的,不光光是系统的一个最终结果,而是看到变成这个结果之前的,一系列中间过程。
-#### 4、具像化
+### 4、具像化
事件会尽可能的把“案发现场”完整的记录下来,因为事件不知道消费者会如何使用它,所以会做到尽量的详尽。包括:
```text
什么时候发生的事件?
@@ -60,8 +60,8 @@ Event,则是明确已经发生的事情。比如
... ...
```
对比我们常见的消息,因为上下游一般是确定的,常常为了性能和传输效率,则会做到尽可能的精简,只要满足“计划经济”指定安排的消费者需求即可。
-### RocketMQ EventBridge 的典型应用场景
-#### 场景1:事件通知
+## RocketMQ EventBridge 的典型应用场景
+### 场景1:事件通知
微服务中,我们常常会遇到需要把一个微服务中生产的消息,通知给其他消费者。这里我们对比三种方式:
A:强依赖方式
@@ -79,12 +79,12 @@ B:完全解耦方式

-#### 场景2:系统间集成
+### 场景2:系统间集成
场景1主要面向一个产品内部,各个微服务之间的事件通信。场景2则是主要面向多个产品之间的事件通信。在一个企业中,我们常常会用到多款产品,而且很多产品可能并不是我们自己开发的,而是购买的外部SaaS服务。这个时候,如果我们希望事件在不同外部SaaS产品之间流转是比较困难的,因为这些外部SaaS产品不是我们自己开发的,无法轻易的修改其中的代码。EventBridge提供的事件中心能力,能够帮助收集各个产品产生的事件,并很好的组织管理起来,就像大卖场橱窗里的商品,精心摆放准备好,配备介绍说明书,供消费者挑选,同时提供送货上门服务。

-### RocketMQ EventBridge 是如何工作的?
+## RocketMQ EventBridge 是如何工作的?
为了解决上述两个应用场景中提到的问题,EventBridge从5个方便入手:
**第1. 确定事件标准:**
diff --git a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/27RocketMQEventBridgeQuickStart.md
similarity index 97%
copy from docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
copy to
i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/27RocketMQEventBridgeQuickStart.md
index d21175400..274b0f029 100644
--- a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
+++
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/07-eventbridge/27RocketMQEventBridgeQuickStart.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 快速开始
+# RocketMQ EventBridge 快速开始
RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一个Runtime来订阅并推送事件。这里我们选择 Apache
RocketMQ 作为我们的消息服务,选择 Apache RocketMQ Connect
作为我们的Runtime来订阅和推送事件。当然,您也可以选择其他消息服务代替,EventBridge并不对此做限制。未来EventBridge也计划基于OpenMessaging
Connect API 实现自己的Runtime,以便更好的提供事件驱动服务。
@@ -7,11 +7,11 @@ RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一
* 64位操作系统,推荐 Linux/Unix/macOS
* 64位 JDK 1.8+
-### 部署Apache RocketMQ
+## 部署Apache RocketMQ
Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为EventBus的默认存储。这里您可以根据这个手册快速部署: [Apache
RocketMQ Quick Start](https://rocketmq.apache.org/docs/quick-start/)
-### 部署Apache RocketMQ Connect
+## 部署Apache RocketMQ Connect
我们使用Apache RocketMQ Connect作为我们的默认Runtime,来连接外部的上下游服务,您可以根据手册完成部署: [RocketMQ
Connect Quick Start](https://github.com/apache/rocketmq-connect) 。在部署 Apache
RocketMQ Connect 之前,您应该下载下面的插件,并将其放在rocketmq-connect中配置参数“pluginPaths”所定义的目录下:
@@ -22,7 +22,7 @@ Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为Even
*
[connect-filter-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-filter-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
*
[connect-eventbridge-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-eventbridge-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
-### 部署Apache RocketMQ EventBridge
+## 部署RocketMQ EventBridge
* 获取 EventBridge
diff --git
a/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/EventCenter.png
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/EventCenter.png
new file mode 100644
index 000000000..e52d58afb
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/EventCenter.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/EventRule.png
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/EventRule.png
new file mode 100644
index 000000000..c72139db3
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/EventRule.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/HowEventBridgeWork.png
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/HowEventBridgeWork.png
new file mode 100644
index 000000000..f8c27c8d0
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/HowEventBridgeWork.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/MessageWithEvent.png
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/MessageWithEvent.png
new file mode 100644
index 000000000..3b48e3d65
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/MessageWithEvent.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/Started.png
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/Started.png
new file mode 100644
index 000000000..e850d3256
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/Started.png
differ
diff --git
a/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/ThreeStages.png
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/ThreeStages.png
new file mode 100644
index 000000000..f0f34f554
Binary files /dev/null and
b/i18n/en/docusaurus-plugin-content-docs/version-5.0/picture/07eventbridge/ThreeStages.png
differ
diff --git a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
b/versioned_docs/version-5.0/07-eventbridge/25RocketMQEventBridgeConcepts.md
similarity index 96%
copy from docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
copy to
versioned_docs/version-5.0/07-eventbridge/25RocketMQEventBridgeConcepts.md
index ab42074a8..219ca620c 100644
--- a/docs/07-eventbridge/25RocketMQEventBridgeConcepts.md
+++ b/versioned_docs/version-5.0/07-eventbridge/25RocketMQEventBridgeConcepts.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 核心概念
+# RocketMQ EventBridge 核心概念
理解EventBridge中的核心概念,能帮助我们更好的分析和使用EventBridge。本文重点介绍下EventBridge中包含的术语:
@@ -11,24 +11,24 @@
下面,我们具体展开:
-### EventSource
+## EventSource
事件源,代表事件发生的源头,用来描述一类事件,一般与微服务系统一一对应。比如:交易事件源、考勤事件源等等。事件源,是对事件一个大的分类,一个事件源下面,往往会包含多种事件类型(type),比如交易事件源下面,可能包含:下单事件、支付事件、退货事件等等。
另外,需要值得注意的是,事件源并不用来描述发生事件的实体,取而代之的是,在CloudEvent中,我们一般选用subject来表示产生这个事件的实体资源。事件源有点像市场经济大卖场中的大类分区,例如:生鲜区、日化日用区、家用电器区等等。在事件中心这个"大卖场",我们可以通过事件源快速的找到我们需要的事件。
-### EventBus
+## EventBus
事件总线是存储事件的地方,其下可以有多种实现,包括Local、RocketMQ、Kafka等。
事件生产者发送事件的时候,必须指定事件总线。事件总线是EventBridge的一等公民,其他所有资源都围绕事件总线形成逻辑上的隔离,即:事件源、事件规则必须都隶属于某一个事件总线下。不同事件总线下的事件源和事件规则可以重名,但是同一个事件总线下的事件源和规则必须不重名。
-### EventRule
+## EventRule
当消费者需要订阅事件时,可以通过事件规则配置过滤和转换信息,将事件推送到指定的目标端。所以,事件规则包含三部分:事件过滤+事件转换+事件目标。

-### FilterPattern
+## FilterPattern
通过事件过滤模式,我们可以对事件总线上的事件进行过滤,只将目标端需要的事件推送过去,以减少不必要的开通,同时减轻消费者
Target端的压力。目前EventBridge支持的事件过滤能力包括:
* 指定值匹配
@@ -41,7 +41,7 @@ Target端的压力。目前EventBridge支持的事件过滤能力包括:
(详细介绍待见其他文章)
-### Transform
+## Transform
生产者的事件可能会同时被多个消费者订阅,但不同消费者需要的数据格式往往不同。这个时候,需要我们将生产者的事件,转换成消费者
Target端需要的事件格式。目前EventBridge支持的事件转换能力包括:
* 完整事件:不做转换,直接投递原生 CloudEvents;
@@ -51,7 +51,7 @@ Target端需要的事件格式。目前EventBridge支持的事件转换能力包
(详细介绍待见其他文章)
-### EventTarget
+## EventTarget
事件目标端,也即我们的事件消费者。在EventBridge架构中,消费者只需要按照自己的业务领域模型设计,提供一个公共的API(这个API既可用来接收事件,同时也用来前台管控面操作),EventBridge就会按照API定义需要的数据格式,将事件安全、可靠的推送给
Target消费者。
diff --git a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
b/versioned_docs/version-5.0/07-eventbridge/26RocketMQEventBridgeOverview.md
similarity index 95%
copy from docs/07-eventbridge/26RocketMQEventBridgeOverview.md
copy to
versioned_docs/version-5.0/07-eventbridge/26RocketMQEventBridgeOverview.md
index 9c5257d8a..5644cbfb6 100644
--- a/docs/07-eventbridge/26RocketMQEventBridgeOverview.md
+++ b/versioned_docs/version-5.0/07-eventbridge/26RocketMQEventBridgeOverview.md
@@ -1,10 +1,10 @@
-## Apache RocketMQ EventBridge 概览
+# RocketMQ EventBridge 概览
RocketMQ EventBridge
致力于帮助用户构建高可靠、低耦合、高性能的事件驱动架构。在事件驱动架构中,微服务不需要主动订阅外部消息,而是可以把所有触发微服务系统发生改变的入口统一到API,并只需要关注当前微服务自己的业务领域模型定义和设计API,无需通过大量的胶水代码去适配解析外部服务的消息。EventBridge
则会负责将外部服务产生的事件安全的、可靠的适配并投递到当前微服务设计的API。
那什么时候我们使用RocketMQ消息,什么时候使用EventBridge事件? 事件的含义是什么,和消息有什么区别?
-### 消息与事件
+## 消息与事件
我们给事件做了如下定义:
```text
事件是指过去已经发生的事,尤其是比较重要的事。
@@ -15,8 +15,8 @@ RocketMQ EventBridge 致力于帮助用户构建高可靠、低耦合、高性
消息包含Command消息和Event消息。Command消息是外部系统发送给本系统的一条操作命令(如上图左半部分);Event消息则是本系统收到Command操作请求,系统内部发生改变之后而产生了事件(如上图右半部分);
-### 事件的四个特性
-#### 1、已发生
+## 事件的四个特性
+### 1、已发生
事件,一定是“已发生”的。
“已发生”同时意味着是不可变的。这个特性非常重要,在我们处理事件、分析事件的时候,这就意味着,我们绝对可以相信这些事件,只要是收到的事件,一定是系统真实发生过的行为。
Command,则代表一种操作请求,是否真的发生不可得知,比如:
@@ -33,7 +33,7 @@ Event,则是明确已经发生的事情。比如
* A账户收到了10w
```
-#### 2、无期望
+### 2、无期望
```text
事件是客观的描述一个事物的状态或属性值的变化,但对于如何处理事件本身并没有做任何期望。
相比之下,Command和Query则都是有期望的,他们希望系统做出改变或则返回结果,但是Event只是客观描述系统的一个变化。
```
@@ -43,14 +43,14 @@ Event,则是明确已经发生的事情。比如
* 事件:有点像"市场经济",商品被生产出来,摆放在商场的大橱窗里,消费者谁看着觉得好就买回去,如果一直没人买,商品可能就过期浪费了。
* Command消息:则有点像"计划经济",按需生产,指定分配对象,也很少产生浪费。
-#### 3、天然有序且唯一
+### 3、天然有序且唯一
```text
同一个实体,不能同时发生A又发生B,必有先后关系;如果是,则这两个事件必属于不同的事件类型。
```
比如:针对同一个交通信号灯,不能既变成绿灯,又变成红灯,同一时刻,只能变成一种状态。
如果我们看到了两个内容一样的事件,那么一定是发生了两次,而且一次在前,一次在后。这对于我们处理数据最终一致性、以及系统行为分析(比如ABA场景)都很有价值:我们看到的,不光光是系统的一个最终结果,而是看到变成这个结果之前的,一系列中间过程。
-#### 4、具像化
+### 4、具像化
事件会尽可能的把“案发现场”完整的记录下来,因为事件不知道消费者会如何使用它,所以会做到尽量的详尽。包括:
```text
什么时候发生的事件?
@@ -60,8 +60,8 @@ Event,则是明确已经发生的事情。比如
... ...
```
对比我们常见的消息,因为上下游一般是确定的,常常为了性能和传输效率,则会做到尽可能的精简,只要满足“计划经济”指定安排的消费者需求即可。
-### RocketMQ EventBridge 的典型应用场景
-#### 场景1:事件通知
+## RocketMQ EventBridge 的典型应用场景
+### 场景1:事件通知
微服务中,我们常常会遇到需要把一个微服务中生产的消息,通知给其他消费者。这里我们对比三种方式:
A:强依赖方式
@@ -79,12 +79,12 @@ B:完全解耦方式

-#### 场景2:系统间集成
+### 场景2:系统间集成
场景1主要面向一个产品内部,各个微服务之间的事件通信。场景2则是主要面向多个产品之间的事件通信。在一个企业中,我们常常会用到多款产品,而且很多产品可能并不是我们自己开发的,而是购买的外部SaaS服务。这个时候,如果我们希望事件在不同外部SaaS产品之间流转是比较困难的,因为这些外部SaaS产品不是我们自己开发的,无法轻易的修改其中的代码。EventBridge提供的事件中心能力,能够帮助收集各个产品产生的事件,并很好的组织管理起来,就像大卖场橱窗里的商品,精心摆放准备好,配备介绍说明书,供消费者挑选,同时提供送货上门服务。

-### RocketMQ EventBridge 是如何工作的?
+## RocketMQ EventBridge 是如何工作的?
为了解决上述两个应用场景中提到的问题,EventBridge从5个方便入手:
**第1. 确定事件标准:**
diff --git a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
b/versioned_docs/version-5.0/07-eventbridge/27RocketMQEventBridgeQuickStart.md
similarity index 97%
copy from docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
copy to
versioned_docs/version-5.0/07-eventbridge/27RocketMQEventBridgeQuickStart.md
index d21175400..274b0f029 100644
--- a/docs/07-eventbridge/27RocketMQEventBridgeQuickStart.md
+++
b/versioned_docs/version-5.0/07-eventbridge/27RocketMQEventBridgeQuickStart.md
@@ -1,4 +1,4 @@
-## Apache RocketMQ EventBridge 快速开始
+# RocketMQ EventBridge 快速开始
RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一个Runtime来订阅并推送事件。这里我们选择 Apache
RocketMQ 作为我们的消息服务,选择 Apache RocketMQ Connect
作为我们的Runtime来订阅和推送事件。当然,您也可以选择其他消息服务代替,EventBridge并不对此做限制。未来EventBridge也计划基于OpenMessaging
Connect API 实现自己的Runtime,以便更好的提供事件驱动服务。
@@ -7,11 +7,11 @@ RocketMQ EventBridge 需要一个消息服务来存储事件,另外需要一
* 64位操作系统,推荐 Linux/Unix/macOS
* 64位 JDK 1.8+
-### 部署Apache RocketMQ
+## 部署Apache RocketMQ
Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为EventBus的默认存储。这里您可以根据这个手册快速部署: [Apache
RocketMQ Quick Start](https://rocketmq.apache.org/docs/quick-start/)
-### 部署Apache RocketMQ Connect
+## 部署Apache RocketMQ Connect
我们使用Apache RocketMQ Connect作为我们的默认Runtime,来连接外部的上下游服务,您可以根据手册完成部署: [RocketMQ
Connect Quick Start](https://github.com/apache/rocketmq-connect) 。在部署 Apache
RocketMQ Connect 之前,您应该下载下面的插件,并将其放在rocketmq-connect中配置参数“pluginPaths”所定义的目录下:
@@ -22,7 +22,7 @@ Apache RocketMQ 是一个很棒的消息服务,我们默认选择它作为Even
*
[connect-filter-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-filter-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
*
[connect-eventbridge-transform-jar-with-dependencies.jar](https://cn-hangzhou-eventbridge.oss-cn-hangzhou.aliyuncs.com/connect-eventbridge-transform-1.0.0-SNAPSHOT-jar-with-dependencies.jar)
-### 部署Apache RocketMQ EventBridge
+## 部署RocketMQ EventBridge
* 获取 EventBridge
diff --git a/versioned_docs/version-5.0/picture/07eventbridge/EventCenter.png
b/versioned_docs/version-5.0/picture/07eventbridge/EventCenter.png
new file mode 100644
index 000000000..e52d58afb
Binary files /dev/null and
b/versioned_docs/version-5.0/picture/07eventbridge/EventCenter.png differ
diff --git a/versioned_docs/version-5.0/picture/07eventbridge/EventRule.png
b/versioned_docs/version-5.0/picture/07eventbridge/EventRule.png
new file mode 100644
index 000000000..c72139db3
Binary files /dev/null and
b/versioned_docs/version-5.0/picture/07eventbridge/EventRule.png differ
diff --git
a/versioned_docs/version-5.0/picture/07eventbridge/HowEventBridgeWork.png
b/versioned_docs/version-5.0/picture/07eventbridge/HowEventBridgeWork.png
new file mode 100644
index 000000000..f8c27c8d0
Binary files /dev/null and
b/versioned_docs/version-5.0/picture/07eventbridge/HowEventBridgeWork.png differ
diff --git
a/versioned_docs/version-5.0/picture/07eventbridge/MessageWithEvent.png
b/versioned_docs/version-5.0/picture/07eventbridge/MessageWithEvent.png
new file mode 100644
index 000000000..3b48e3d65
Binary files /dev/null and
b/versioned_docs/version-5.0/picture/07eventbridge/MessageWithEvent.png differ
diff --git a/versioned_docs/version-5.0/picture/07eventbridge/Started.png
b/versioned_docs/version-5.0/picture/07eventbridge/Started.png
new file mode 100644
index 000000000..e850d3256
Binary files /dev/null and
b/versioned_docs/version-5.0/picture/07eventbridge/Started.png differ
diff --git a/versioned_docs/version-5.0/picture/07eventbridge/ThreeStages.png
b/versioned_docs/version-5.0/picture/07eventbridge/ThreeStages.png
new file mode 100644
index 000000000..f0f34f554
Binary files /dev/null and
b/versioned_docs/version-5.0/picture/07eventbridge/ThreeStages.png differ