Knative实战:Broker和Trigger的使用
本文基于Knative v0.23版本
开始使用Knative Eventing
创建一个Knative Eventing namespace
添加一个broker
broker路由事件到不同的事件接收器或消费者。
用以下命令添加一个叫做
default
的broker:确认broker正确运行:
确保
Ready
状态为True
:
创建事件消费者
在这里我们创建两个事件消费者,hello-display
和goodbye-display
,来演示怎么配置事件生产者来针对特定的消费者。
用以下命令部署
hello-display
消费者到集群中:用以下命令部署
goodbye-display
消费者到集群中:用以下命令确认消费者正常工作:
上述命令能列出我们部署的
hello-display
和goodbye-display
消费者:READY
列副本数量要与AVAILABLE
列匹配。
创建triggers
Triggers定义了每个事件消费者接受到的事件。Brokers使用triggers将事件发送给正确的消费者。每个trigger能够指定一个过滤器,该过滤器能够基于Cloud Event context attribute选择相关的事件。
创建一个trigger:
该命令创建了一个的trigger来发送所有
type
为greeting
的事件到一个名为hello-display
的事件消费者。创建第二个消费者:
该命令创建了一个trigger用来发送所有
source
为sendoff
的事件到名为goodbye-display
的事件消费者。确认trigger正常工作:
该命令返回刚刚创建的两个triggers:
如果triggers配置正确,则会Ready并且指向正确的broker和SUBSCRIBER_URI。
创建一个Pod作为事件生产者
我们使用curl
命令手动将单个事件作为HTTP请求发送给broker,并演示这些事件怎么被事件消费者正确的接收。
只能从安装了Knative Eventing集群内访问broker,所以必须在集群内创建一个pod来执行curl
命令作为事件生产者。
用以下命令创建pod:
给broker发送事件
进入刚刚创建的容器内:
这里构建三种请求来展示可以发送的各种类型的事件:
构建
type
为greeting
的事件:当broker接收到该事件时,
hello-display
会被激活并将事件发送给对应事件消费者。如果接收到了事件,则会收到如下类似202 Accepted
的回应:构建
source
为sendoff
的事件:当broker接收到该事件时,
goodbye-display
会被激活并将事件发送给对应事件消费者。如果接收到了事件,则会收到如下类似202 Accepted
的回应:构建包含
type
为greeting
、source
为sendoff
的事件:当broker接收到该事件时,
hello-display
和goodbye-display
都会被激活并将事件发送给对应事件消费者。如果接收到了事件,则会收到如下类似202 Accepted
的回应:
使用
exit
命令退出容器。
到这里我们发送了两个事件给hello-display
事件消费者,两个事件给goodbye-display
。后面让我们确认正确接收了这些事件。
确认事件接收
确认事件被正确的订阅者接收了。
查看
hello-display
事件消费者的日志:可以看到发送给
hello-display
的事件的Attributes
和Data
:查看
goodbye-display
事件消费者的日志:可以看到发送给
goodbye-display
的事件的Attributes
和Data
:
参考资料
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
本站myrat.top所有文章均为原创,转载请注明出处。