跳到内容

高级事件过滤

Image

我们将学习哪些 Knative 功能?

  • 触发器和代理
  • Knative 如何神奇地连接一切

最终交付成果是什么样的?

Image

  • “已分析的评论”将(使用触发器)发送回代理,并存储到数据库中。
  • 不包含脏话的评论将显示在 UI 中,情感将以表情符号显示。

实施

步骤 1:创建用于数据库插入的触发器

Image

将以下触发器配置附加到现有的 node-server/config/200-broker.yaml 文件,然后应用

附加node-server/config/200-broker.yaml
---
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: db-insert-trigger
spec:
  broker: bookstore-broker
  filter:
    attributes: # Trigger will filter events based on BOTH the type and badwordfilter attribute
      type: moderated-comment # This is the filter that will be applied to the event, only events with the ce-type moderated-comment will be processed
      badwordfilter: good # This is the filter that will be applied to the event, only events with the ce-extension badwordfilter: good will be processed
  subscriber:
    ref:
      apiVersion: v1
      kind: Service
      name: node-server-svc
    uri: /insert # This is the path where the event will be sent to the subscriber, see /insert in node-server code: index.js
kubectl apply -f node-server/config/200-broker.yaml

应用配置后,您应该会看到

broker.eventing.knative.dev/bookstore-broker unchanged
trigger.eventing.knative.dev/db-insert-trigger created

到目前为止,您在集群中创建的触发器应该如下所示

Image

验证

运行以下命令检查触发器是否创建成功

kubectl get triggers

您应该看到触发器处于就绪状态

NAME                BROKER             SUBSCRIBER_URI                                                       AGE     READY   REASON
db-insert-trigger   bookstore-broker   http://node-server-svc.default.svc.cluster.local/insert              5h32m   True
sequence-trigger    bookstore-broker   http://sequence-kn-sequence-0-kn-channel.default.svc.cluster.local   5h30m   True
log-trigger         bookstore-broker   http://event-display.default.svc.cluster.local                       5h32m   True

验证

Image

现在,是魔法时刻。一切都自动连接。尝试与 UI 交互吧!

  • 正常评论:当您发送不含任何“脏话”的正常评论时,它将正确显示在评论区。
  • “脏话”评论:包含冒犯性或仇恨言论的评论将被过滤掉,最终将重定向到 Slack(我们将在下一节介绍)。

很简单,不是吗?这就是 Knative Eventing 如此有用的原因!您只需专注于开发每个组件,而 Knative Eventing 处理服务之间的连接和通信。每个服务都可以专注于自己的职责,而无需担心消息传递。

下一步

Image

您已经构建了事件驱动架构。现在是时候将其连接到外部服务,以进一步增强您的书店应用程序了。在下一节中,我们将使书店能够向您的 Slack 工作区发送通知!

转到使用 Camel K 连接 Slack

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。