登录 / 注册 Account
Jump to section

什么是事件网格?

复制 URL

事件网格是一种动态基础架构,用于在分布式环境中向应用发送通知。在事件驱动架构(EDA)语境中,事件指的是系统中的变更、操作或观察,它们会生成通知,然后发送到各自对事件做出响应的其他系统。事件网格可使这样的连接成为可能。

在高度分布的基础架构中散布大量数据,已成为大型企业的一项重要需求。任务关键型应用必须能够以可靠、及时的方式通信,从而共享必要的重要数据来处理推动业务的交互和交易。

现代企业当前面临的一大挑战,就是如何以高效、可扩展且具成本效益的方式,在不仅在地理位置上分散,而且存在于独立的异构集群中的基础架构之间移动这些数据。事件网格就是解决方案,这种基础架构旨在跨越任何环境顺畅传输事件,即便是不同之间也可无缝传输。

要介绍事件网格,首先我们需要探讨一下事件驱动架构(EDA),这是基于通过"事件"进行通信的软件架构。事件指的是系统中的变更、操作或观察,它们会生成通知,然后发送到各自对事件做出响应的其他系统。

例如,触发事件的源头可以是对客户账单地址的更改、下达新订单这样的操作,或者从传感器读取电池电量或温度读数的观察。每个事件都代表了有信息要被其他应用使用。多个消费者可以接收相同的消息,并以自己的方式利用相关数据来完成特定的任务。

相较于更加传统的"同步"通信,EDA 基于事件的"异步"通信更加适合这种类型的数据传输。在同步消息传递中,两个应用会直接相连,最常见的是通过 HTTP 应用编程接口(API),并且两个服务必须可用、可响应,才能成功进行通信。当服务不可用时,消息会无法处理,并且整个系统可能也会停滞甚至瘫痪。若要将大量信息传输到企业内的多个系统,同步传输通常不是理想之选。 

相反,"异步"通信由事件驱动的,可以让多个应用以近乎实时的方式同时快速通信。即使有系统无法接收事件,EDA 的异步性质可以保证在这一系统可用时将通知送达。

EDA 不需要事件生产者和消费者之间存在运行时耦合,这使得 EDA 极为适合现代的分布式应用。

整个企业内每分钟可生成数百乃至数千个事件。企业需要一种有效的方式,将大量事件传递到部署在分布式云和本地环境中的各式各样的应用。事件网格为事件驱动型企业提供了这一功能。

事件网格是一种动态基础架构,通过彼此连接的"事件代理"将来自生产者的事件传递给消费者。事件网格与环境无关,为可跨越离散云平台传递事件,不论应用部署到何处,无论是公共、私有和混合云,还是 PaaS 和物联网(IoT),甚至是无云环境,都不需要配置事件路由。 

事件网格允许发布者使用自己平台的原生事件机制,同时允许订阅者也这样做。因此,Kubernetes 集群中的 Node.js 开发人员可以发布事件,而另一集群中的 Java 开发人员可以订阅同一事件。任何消费者都可以利用事件,而且对应用类型、构建应用的开发平台、用于传递消息的流处理技术或托管应用的云类型没有任何限制。

由于事件网格可以无视环境在不同应用之间传递信息,因此事件网格支持在传统应用、数据库和设备与最新的微服务型和云原生应用之间进行松散耦合的集成。

事件网格也可使用各种消息传递服务选项,并在它们之间进行转换。Apache Kafka 是 EDA 消息传递的一个常见选择,特别是对于云原生开发人员而言。事件网格还应支持其他消息传递选项,例如 Knative Eventing、 Cloud Events、HTTP 和 AMQP 等等。

事件网格代表着 EDA 旅程的成熟阶段,意味着企业已全面采纳了事件驱动架构。尽管异步交互和事件驱动架构模式并不新鲜,但事件网格提供了一种突破性的新集成方法,能够成为新一代企业的通信基础架构。

由于名称相近,服务网格和事件网格这两者很容易被人混淆。但事件网格与服务网格截然不同。事件网格是异步的,服务网格则支持更为传统的请求-回复式同步消息传递。

 

事件网格和服务网格在企业中互为补充,提供两种彼此不同但都有效的通信选项,让开发人员能够灵活选择最适合他们设计的应用的选项。然而,服务网格不可代替事件网格,因为服务网格不支持异步的事件驱动通信,但依旧非常适合单集群部署。

为了满足企业的需求,践行事件驱动架构的承诺,事件网格应当提供以下必备功能:

  • 支持各种不同的消息传递服务,例如 Kafka、Knative Eventing、 HTTP 和 AMQP 等等。
  • 支持容错功能以实现可靠的消息传递,包括从网络故障中自动恢复以及无法送达的消息的后备目的地。
  • 支持在离散的事件、应用和消息传递平台之间进行多协议桥接。
  • 支持本地部署和多云部署。
  • 支持多播(所有订阅者接收每条消息的副本)或任播(一个订阅者接收生成的各条消息的副本)地址。
  • 安全连接和事件消息的传输。

事件网格用例

事件驱动架构与事件网格相结合,可以利用多样的应用堆栈来支持部署于复杂多云、广泛分布的拓扑中的各种用例。以下仅仅是许多潜在事件网格用例的几个示例。

微服务集成

事件网格可以轻松让基于微服务的应用彼此连接,并与传统技术的相连。

电子商务

事件网格能够加快交易处理,确保客户与网站和应用的交互速度快、可靠性强。

客户支持

事件网格支持快速交付客户交互数据,让支持团队能够实时回应客户,创造个性化的体验。

金融服务

事件网格可以为金融服务提供商带来实时交易数据的低延迟同步。此外,事件网格也可实时传递可疑交易的信息,以支持欺诈检测。

物联网连接

事件网格为后端系统提供可靠且可扩展的物联网(IoT)连接,以处理来自几乎种类不限的传感器的指标。

事件网格为业务带来以下关键优势。

实时响应

业务成功离不开应对变化的能力。事件网格的一大优势是实时交付数据(通过事件驱动架构以事件流形式交付),以实现及时的响应。事件网格效率高,可以确定事件生产者和消费者之间的最快路径,几乎没有消息传递延迟。这让业务利益相关者能够对需要迅速决策的关键问题做出快速反应。

改进客户体验

事件网格可以实现实时交付面向客户的团队和电子商务技术所使用的数据,帮助企业更好地服务客户,最终改进客户的体验。

降低运维成本

事件网格提供对制造、销售、库存和运输的实时可见性,让企业能够优化运维,提高效率并降低成本。

开发人员生产力

事件网格与不同类型的环境、消息传递系统和协议无关,因此借助事件网格,应用开发人员可以专心利用可用的最佳技术来实施业务逻辑。开发人员可以自由进行创新,不必去开发复杂的数据分发网络,也不会受到开发环境、消息传递平台或云类型的限制。

您需要的服务注册表工具

Red Hat Integration

红帽集成包含 AMQ 消息传递套件(可与红帽 Openshift 相组合),可以配置用于构建事件网格。

Red Hat OpenShift

红帽 OpenShift 是有助于加速部署云原生应用的容器和 Kubernetes 平台。