上手Knative的 - 第2部分
上手Knative的 - 第2部分 在我之前的文章中 ,我谈到了 Knative Serving ,用于快速部署和无服务器容器的自动扩展。 如果您希望HTTP呼叫同步触发您的服务,Knative Serving非常棒。 但是,在无服务器的微服务世界中,异步触发器更常见且更有用。 那是 Knative Eventing 发挥作用的时候。
在Hands on Knative系列的第二部分中,我想介绍Knative Eventing并在我的 Knative Tutorial 中展示如何将其与各种服务集成的 一些示例 。
什么是Knative Eventing? Knative Eventing与Knative Serving携手合作,为松散耦合的事件驱动服务提供原语。 典型的Knative Eventing架构如下所示:
有4个主要组成部分:
Source (aka Producer)从实际源读取事件并将下游转发到Channel或更不常见地直接转发到Service。 频道 从源接收事件,保存到其底层存储(稍后将详细介绍)并向所有订户扇出。 订阅 桥接通道和服务(或另一个通道)。 服务 (又名消费者)是消费事件流的Knative服务。 让我们更详细地看一下这些。
来源,渠道和订阅 Knative Eventing的最终目标是将事件从源路由到服务,并使用我之前提到的原语来实现:Source,Channel和Subscription。
Source 从实际源读取事件并将其转发到下游。 截至今天,Knative支持从 Kubernetes , GitHub , Google Cloud Pub / Sub , AWS SQS主题 , 容器 和 CronJobs中 读取事件 。
一旦事件被拉入Knative,它需要保存在内存中或更耐用的地方,如Kafka或Google Cloud Pub / Sub。 通道 发生了这种情况。 它有多种 实现 来支持不同的选项。
[Read More]