<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Eventing :: Ay Docs</title>
    <link>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/index.html</link>
    <description>Broker Install Kafka Broker Display Broker Message Kafka Broker Invoke ISVC Plugin Eventing Kafka Broker Prepare Dev Environment Build Async Preidction Flow</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 07 Mar 2024 15:00:59 +0800</lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Broker</title>
      <link>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/broker/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/broker/index.html</guid>
      <description>Install Kafka Broker Display Broker Message Kafka Broker Invoke ISVC Knative Broker 是 Knative Eventing 系统的核心组件，它的主要作用是充当事件路由和分发的中枢，在事件生产者（事件源）和事件消费者（服务）之间提供解耦、可靠的事件传输。&#xA;以下是 Knative Broker 的关键作用详解：&#xA;事件接收中心：&#xA;Broker 是事件流汇聚的入口点。各种事件源（如 Kafka 主题、HTTP 源、Cloud Pub/Sub、GitHub Webhooks、定时器、自定义源等）将事件发送到 Broker。&#xA;事件生产者只需知道 Broker 的地址，无需关心最终有哪些消费者或消费者在哪里。&#xA;事件存储与缓冲：&#xA;Broker 通常基于持久化的消息系统实现（如 Apache Kafka, Google Cloud Pub/Sub, RabbitMQ, NATS Streaming 或内存实现 InMemoryChannel）。这提供了：&#xA;持久化： 确保事件在消费者处理前不会丢失（取决于底层通道实现）。&#xA;缓冲： 当消费者暂时不可用或处理速度跟不上事件产生速度时，Broker 可以缓冲事件，避免事件丢失或压垮生产者/消费者。&#xA;重试： 如果消费者处理事件失败，Broker 可以重新投递事件（通常需要结合 Trigger 和 Subscription 的重试策略）。&#xA;解耦事件源和事件消费者：&#xA;这是 Broker 最重要的作用之一。事件源只负责将事件发送到 Broker，完全不知道有哪些服务会消费这些事件。&#xA;事件消费者通过创建 Trigger 向 Broker 声明它对哪些事件感兴趣。消费者只需知道 Broker 的存在，无需知道事件是从哪个具体源产生的。</description>
    </item>
    <item>
      <title>Plugin</title>
      <link>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/plugin/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/plugin/index.html</guid>
      <description>Eventing Kafka Broker Prepare Dev Environment</description>
    </item>
    <item>
      <title>Build Async Preidction Flow</title>
      <link>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/async_prediction_flow/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/kubernetes/serverless/knative/eventing/async_prediction_flow/index.html</guid>
      <description>Flow flowchart LR A[User Curl] --&gt;|HTTP| B{ISVC-Broker:Kafka} B --&gt;|Subscribe| D[Trigger1] B --&gt;|Subscribe| E[Kserve-Triiger] B --&gt;|Subscribe| F[Trigger3] E --&gt; G[Mnist Service] G --&gt; |Kafka-Sink| B Setps 1. Create Broker Setting kubectl apply -f - &lt;&lt;EOF apiVersion: v1 kind: ConfigMap metadata: name: kafka-broker-config namespace: knative-eventing data: default.topic.partitions: &#34;10&#34; default.topic.replication.factor: &#34;1&#34; bootstrap.servers: &#34;kafka.database.svc.cluster.local:9092&#34; #kafka service address default.topic.config.retention.ms: &#34;3600&#34; EOF 2. Create Broker kubectl apply -f - &lt;&lt;EOF apiVersion: eventing.knative.dev/v1 kind: Broker metadata: annotations: eventing.knative.dev/broker.class: Kafka name: isvc-broker namespace: kserve-test spec: config: apiVersion: v1 kind: ConfigMap name: kafka-broker-config namespace: knative-eventing EOF 3. Create Trigger kubectl apply -f - &lt;&lt; EOF apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: kserve-trigger namespace: kserve-test spec: broker: isvc-broker filter: attributes: type: prediction-request-udf-attr # you can change this subscriber: uri: http://prediction-and-sink.kserve-test.svc.cluster.local/v1/models/mnist:predict EOF 4. Create InferenceService 1kubectl apply -f - &lt;&lt;EOF 2apiVersion: serving.kserve.io/v1beta1 3kind: InferenceService 4metadata: 5 name: prediction-and-sink 6 namespace: kserve-test 7spec: 8 predictor: 9 model: 10 modelFormat: 11 name: pytorch 12 storageUri: gs://kfserving-examples/models/torchserve/image_classifier/v1 13 transformer: 14 containers: 15 - image: docker-registry.lab.zverse.space/data-and-computing/ay-dev/msg-transformer:dev9 16 name: kserve-container 17 env: 18 - name: KAFKA_BOOTSTRAP_SERVERS 19 value: kafka.database.svc.cluster.local 20 - name: KAFKA_TOPIC 21 value: test-topic # result will be saved in this topic 22 - name: REQUEST_TRACE_KEY 23 value: test-trace-id # using this key to retrieve preidtion result 24 command: 25 - &#34;python&#34; 26 - &#34;-m&#34; 27 - &#34;model&#34; 28 args: 29 - --model_name 30 - mnist 31EOF Expectd Output root@ay-k3s01:~# kubectl -n kserve-test get pod NAME READY STATUS RESTARTS AGE prediction-and-sink-predictor-00001-deployment-f64bb76f-jqv4m 2/2 Running 0 3m46s prediction-and-sink-transformer-00001-deployment-76cccd867lksg9 2/2 Running 0 4m3s Expectd Output Source code of the docker-registry.lab.zverse.space/data-and-computing/ay-dev/msg-transformer:dev9 could be found 🔗here</description>
    </item>
  </channel>
</rss>