Knative-eventing资源详解

Knative-eventing资源详解

友情链接:Knative简介

1.Knative-eventing运行流程

source事件源
channel管道
Broker代理
Trigger触发/Subscription订阅
consumer事件消费者

2.事件源(Event Source)

当前支持以下几种类型的事件源:

  • ApiserverSource:每次创建或更新 Kubernetes 资源时,ApiserverSource 都会触发一个新事件
  • GitHubSource:GitHub 操作时,GitHubSource 会触发一个新事件
  • GcpPubSubSource: GCP 云平台 Pub/Sub 服务会触发一个新事件
  • AwsSqsSource:Aws 云平台 SQS 服务会触发一个新事件
  • ContainerSource: ContainerSource 将实例化一个容器,通过该容器产生事件
  • CronJobSource: 通过 CronJob 产生事件
  • KafkaSource: 接收 Kafka 事件并触发一个新事件
  • CamelSource: 接收 Camel 相关组件事件并触发一个新事件

3.事件接收/转发(Flow)

当前 Knative 支持如下事件接收处理:

  • 直接事件接收
    通过事件源直接转发到单一事件消费者。支持直接调用 Knative Service 或者 Kubernetes Service 进行消费处理。这样的场景下,如果调用的服务不可用,事件源负责重试机制处理。

  • 通过事件通道(Channel)以及事件订阅(Subscriptions)转发事件处理
    这样的情况下,可以通过 Channel 保证事件不丢失并进行缓冲处理,通过 Subscriptions 订阅事件以满足多个消费端处理。

  • 通过 brokers 和 triggers 支持事件消费及过滤机制
    Knative Eventing 定义 Broker 和 Trigger 对象,实现了对事件进行过滤(亦如通过 ingress 和 ingress controller 对网络流量的过滤一样)。通过定义 Broker 创建 Channel,通过 Trigger 创建 Channel 的订阅(subscription),并产生事件过滤规则。

4.事件消费者(Event Consumer)

为了满足将事件发送到不同类型的服务进行消费, Knative Eventing 通过多个 k8s 资源定义了两个通用的接口:

  • Addressable 接口提供可用于事件接收和发送的 HTTP 请求地址,并通过status.address.hostname字段定义。作为一种特殊情况,Kubernetes Service 对象也可以实现 Addressable 接口
  • Callable 接口接收通过 HTTP 传递的事件并转换事件。可以按照处理来自外部事件源事件的相同方式,对这些返回的事件做进一步处理

当前 Knative 支持通过 Knative Service 或者 Kubernetes Service 进行消费事件。

5.事件注册(Event Registry)

Knative Eventing 定义了一个 EventType 对象,使消费者更容易发现他们可以从 Brokers 消费的事件类型。

注册表由一组事件类型组成。存储在注册表中的事件类型包含(所有)消费者创建触发器所需的信息,而无需求助于其他一些带外机制。

6.参考

Knative核心概念介绍
Knative官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值