This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.2. Knative Eventing 架构
OpenShift Container Platform 上的 Knative Eventing 可让开发人员使用 事件驱动的架构 和无服务器应用程序。事件驱动的构架所基于的概念是,创建事件、事件 sink 的人员和使用它们的用户之间是分离的。
Knative Eventing 使用标准 HTTP POST 请求来发送和接收事件创建者和用户之间的事件。这些事件符合 CloudEvents 规范,它允许在任何编程语言中创建、解析、发送和接收事件。
您可以使用以下方法,将 事件从事件源 传播到多个事件 sink:
Channel 和 Broker 实现通过使用 Subscriptions 和 Trigger 管理事件到事件 sink。如果目标 sink 不可用,则会缓冲事件。Knative Eventing 支持以下场景:
- 在不创建消费者的情况下发布事件
- 您可以将事件作为 HTTP POST 发送到代理,并使用 SinkBinding 分离生成事件的应用程序的目标配置。
- 在不创建发布程序的情况下消耗事件
- 您可以使用 Trigger 来根据事件属性消耗来自代理的事件。您的应用程序将以 HTTP POST 的形式接收事件。
3.2.1. 事件 sink 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要启用多种 sink 类型的交付,Knative Eventing 会定义以下通用接口,这些接口可由多个 Kubernetes 资源实现:
- 可寻址的对象
-
能够接收和确认通过 HTTP 发送的事件到 Event 的
status.address.url
字段中定义的地址。Kubernetes Service 对象也满足可寻址的接口。 - 可调用的对象
- 能够通过 HTTP 接收事件并转换它,并在 HTTP 响应有效负载中返回 0 或 1 新事件。这些返回的事件可能会象处理外部事件源中的 Events 一样进一步处理。