《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.10环境中验证

文章目录

  • 概念
  • 操作
  • 参考

概念

Knative Eventing中的Channel和Subscription类似JMS消息体系中的Topic/Subscribe机制。Event Source是消息的发布者(类似JMS的Publisher),Channle是传送消息的通道(类似JMS的Topic),而Subscription通过订阅Channel获取到相关的Event,并且使用Knative Serving的服务处理消息。

操作

  1. 执行命令,创建名为eventinghello-ch的Channel类型的对象,然后查看Knative的channel 对象,其中eventinghello-ch状态为READY=true。
$ kn channel create eventinghello-ch -n knative-tutorial
$ kn channel list -n knative-tutorial
NAME               TYPE              URL                                                                     AGE   READY   REASON
eventinghello-ch   InMemoryChannel   http://eventinghello-ch-kn-channel.knative-tutorial.svc.cluster.local   24s   True
  1. 查看生成的所有OpenShift对象。
$ oc get all -n knative-tutorial
NAME                                  TYPE           CLUSTER-IP   EXTERNAL-IP                                         PORT(S)   AGE
service/eventinghello-ch-kn-channel   ExternalName   <none>       imc-dispatcher.knative-eventing.svc.cluster.local   <none>    6m37sNAME                                             URL                                                                     AGE     READY   REASON
channel.messaging.knative.dev/eventinghello-ch   http://eventinghello-ch-kn-channel.knative-tutorial.svc.cluster.local   6m37s   TrueNAME                                                     URL                                                                     AGE     READY   REASON
inmemorychannel.messaging.knative.dev/eventinghello-ch   http://eventinghello-ch-kn-channel.knative-tutorial.svc.cluster.local   6m37s   True
  1. 执行命令生成PingSource对象,然后查看PingSource对象的状态为READY=true。
$ kn source ping create event-greeter-ping-source --schedule "*/2 * * * *" --sink channel:eventinghello-ch -n knative-tutorial
$ kn source ping list -n knative-tutorial
NAME                        SCHEDULE      SINK                       AGE     CONDITIONS   READY   REASON
event-greeter-ping-source   */2 * * * *   Channel:eventinghello-ch   9m56s   3 OK / 3     True
  1. 执行命令创建名为eventinghelloa和eventinghellob的Service。
$ kn service create eventinghelloa --concurrency-target=1 --revision-name=eventinghelloa-v1 --image=quay.io/rhdevelopers/eventinghello:0.0.2 -n knative-tutorial
$ kn service create eventinghellob --concurrency-target=1 --revision-name=eventinghellob-v1 --image=quay.io/rhdevelopers/eventinghello:0.0.2 -n knative-tutorial
  1. 查看和eventinghelloa和eventinghellob相关的Knative Serivce对象,它们的状态为READY=true。
$ kn service list
NAME             URL                                                                                             LATEST              AGE    CONDITIONS   READY   REASON
eventinghelloa   http://eventinghelloa-knative-tutorial.apps.cluster-pek-e4bf.pek-e4bf.sandbox1216.opentlc.com   eventinghelloa-v1   99s    3 OK / 3     True
eventinghellob   http://eventinghellob-knative-tutorial.apps.cluster-pek-e4bf.pek-e4bf.sandbox1216.opentlc.com   eventinghellob-v1   110s   3 OK / 3     True
  1. 执行命令,分别创建名为eventinghelloa-sub和eventinghellob-sub的Subscription。这两个Subscription都是从名为eventinghello-ch的Channel获取消息,只不过一个用名为eventinghelloa的Service处理,另一个用名为eventinghellob的Service处理。
$ kn subscription create eventinghelloa-sub --channel eventinghello-ch --sink eventinghelloa -n knative-tutorial
$ kn subscription create eventinghellob-sub --channel eventinghello-ch --sink eventinghellob -n knative-tutorial$ kn subscription list -n knative-tutorial
NAME                 CHANNEL                    SUBSCRIBER            REPLY   DEAD LETTER SINK   READY   REASON
eventinghelloa-sub   Channel:eventinghello-ch   ksvc:eventinghelloa                              True
eventinghellob-sub   Channel:eventinghello-ch   ksvc:eventinghellob                              True
  1. 在控制台查看运行情况。可以看到eventinghelloa和eventinghellob的实例数会在0和2之间变化。
  2. 执行命令,清理环境。
$ kn service delete eventinghelloa -n knative-tutorial
$ kn service delete eventinghellob -n knative-tutorial
$ kn subscription delete eventinghelloa-sub -n knative-tutorial
$ kn subscription delete eventinghellob-sub -n knative-tutorial
$ kn source ping delete event-greeter-ping-source -n knative-tutorial
$ kn channel delete eventinghello-ch -n knative-tutorial

参考

  • https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/eventing/channel-and-subscribers.html

OpenShift 4 - Knative教程 (6) Eventing之Channel和Subscription相关推荐

  1. OpenShift 4 - Knative教程 (7) Eventing之Broker和Trigger

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 概念 操作说明 部署Broker 部署Service作为Sink 部署Ev ...

  2. OpenShift 4 - Knative教程 (5) Eventing之Source和Sink

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 创建 Knative Eventing 环境 配置Source和Sink ...

  3. OpenShift 4 - Knative教程 (1) 创建Serverless运行环境

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 说明 客户端环境 配置Knative环境 安装OpenShift Serv ...

  4. OpenShift 4 - Knative教程 (4) 自动扩展和收缩

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 自动扩展和收缩功能说明 配置自动扩展收缩 配置扩展收缩上下限 自动扩展和收 ...

  5. OpenShift 4 - Knative教程 (3) 了解Knative Serving的核心对象

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 Knative Serving的核心对象 创建Knative Servin ...

  6. OpenShift 4 - Knative教程(2) 基于Revision/Tag/Traffic实现蓝绿部署和恢复发布

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 基于Revision/Tag/Traffic实现蓝绿部署和恢复发布 基于R ...

  7. 【图解 Knative】剖析 Eventing Broker-Trigger 实现原理

    1. 背景介绍 我们都知道,Knative 有两个主要的子项目:Serving 和 Eventing.其中 关于 Serviing 可以查看之前的一篇公众号文章 [超详细]深入探究 Knative 扩 ...

  8. Knative Eventing 中 Channel 如何注入默认 Provisioner

    场景 通常的在创建Broker时,我们需要通过 spec.ChannelTemplate 指定使用某个具体的 Channel Provisioner.例如这样的Broker: apiVersion: ...

  9. OpenShift 4 - 使用教程和免费试用环境

    <OpenShift 4.x HOL教程汇总> 红帽在 "https://developers.redhat.com/learn" 为开发人员提供了大量的产品使用教程以 ...

最新文章

  1. 【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
  2. SAP项目MM调研清单
  3. http、https、密码学基础、GET和POST区别
  4. Paillier半同态加密:原理、高效实现方法和应用
  5. 2.2 基本算法之递归和自调用函数 1751 分解因数 python
  6. 35岁的程序员如果不转行,从事哪些细分行业比较好?
  7. 【Kettle】如何输出固定格式报表
  8. Linux中的jobs、fg与bg命令
  9. 解决keil中 点击setting 程序中断问题
  10. python: 从pdf中提取图片
  11. Oracle表中新增字段
  12. mongodb 使用场景
  13. linux考试不及格反思100字,考试没考好的反思总结(精选10篇)
  14. 【WordPress】添加备案信息
  15. 佳能6d2无线链接计算机操作,玩转EOS 6D无线WiFi功能三步骤
  16. 记一次百度知识图谱面试经历(cold)
  17. c语言勾股数编程,C++勾股数公式讲解
  18. 掌门人共话根技术 | 麒麟信安高级副总裁陈松政参加2022长沙·中国1024程序员节“岳麓对话”
  19. java rmi tcp_Tomcat启动失败报错[RMI TCP Connection(4)-127.0.0.1] [RMI TCP Connection(3)-127.0.0.1]...
  20. 转:量子密钥分发和BB84协议

热门文章

  1. mysql别人的框架_MySQL逻辑架构
  2. pinfinder开源下载_BayesianNetworktool
  3. 数据结构最佳路径代码_【微服务】149:商品数据结构
  4. 数据可视化demo_火出圈的大屏你真的会做吗?这才是老板最爱的可视化大屏
  5. 普通地图的六大要素_地理知识点总结之地图基本要素
  6. kafka 丢弃数据_Kafka快速入门
  7. img src 文件流_Java中的IO流之输出流|乐字节
  8. UI设计素材帮手, 排版技巧设计师
  9. 设计师网站导航的好处
  10. 计算机制图的平行投影,工程制图与计算机辅助设计课件-20210406204806.ppt-原创力文档...