6.5. 将工作流链接到事件系统
OpenShift Serverless Logic Operator 使用 Knative Eventing、SinkBinding 和 triggers 将工作流与事件系统相关联。这些对象由 OpenShift Serverless Logic Operator 自动创建,并简化工作流事件的生产和消耗。
以下示例显示了为使用平台范围事件系统配置的 example-workflow 工作流创建的 Knative Eventing 对象:
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlowPlatform
metadata:
name: sonataflow-platform-example
namespace: example-namespace
spec:
eventing:
broker:
ref:
name: example-broker
apiVersion: eventing.knative.dev/v1
kind: Broker
services:
dataIndex:
enabled: true
jobService:
enabled: true
...
example-broker 对象是一个 Kafka 类代理,其配置在 kafka-broker-config 配置映射中定义。
以下示例演示了如何配置用于 SonataFlowPlatform 的 Kafka Knative Broker:
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
annotations:
eventing.knative.dev/broker.class: Kafka
name: example-broker
namespace: example-namespace
spec:
config:
apiVersion: v1
kind: ConfigMap
name: kafka-broker-config
namespace: knative-eventing
- 1
- Kafka 类用于创建
example-broker对象。
以下示例显示 example-workflow 如何自动链接到 example-namespace 中的用于事件 production 和 consume 的 example-broker :
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
name: example-workflow
namespace: example-namespace
annotations:
sonataflow.org/description: Example Workflow
sonataflow.org/version: 0.0.1
sonataflow.org/profile: preview
spec:
flow:
start: ExampleStartState
events:
- name: outEvent1
source: ''
kind: produced
type: out-event-type1
- name: inEvent1
source: ''
kind: consumed
type: in-event-type1
- name: inEvent2
source: ''
kind: consumed
type: in-event-type2
states:
- name: ExampleStartState
...
您可以使用以下命令列出自动创建的名为 example-workflow-sb 的 SinkBinding :
$ oc get sinkbindings -n example-namespace
输出示例
NAME TYPE RESOURCE SINK READY
example-workflow-sb SinkBinding sinkbindings.sources.knative.dev broker:example-broker True
您可以使用以下命令列出为事件消耗自动创建的触发器:
$ oc get triggers -n <example-namespace>
输出示例
NAME BROKER SINK AGE CONDITIONS READY REASON
example-workflow-inevent1-b40c067c-595b-4913-81a4-c8efa980bc11 example-broker service:example-workflow 16m 7 OK / 7 True
example-workflow-inevent2-b40c067c-595b-4913-81a4-c8efa980bc11 example-broker service:example-workflow 16m 7 OK / 7 True