1

我正在寻找一个无服务器框架(免费),我可以在其中创建一个 kafka 触发器,并在触发时调用一个 kube 函数(python)

我试过 nuclio,但问题是我的 kafka 版本更高,它们不支持高于 2.4 的版本。

我想要类似的东西:

apiVersion: "nuclio.io/v1beta1"
kind: "NuclioFunction"
spec:
  runtime: "python:3.6"
  handler: NuclioKafkaHandler:consumer
  minReplicas: 1
  maxReplicas: 1
  triggers:
    myKafkaTrigger:
      kind: kafka-cluster
      attributes:
        initialOffset: earliest
        topics:
          - nuclio
        brokers:
          - kafka-bootstrap:9092
        consumerGroup: Consumer

还有一个 kube 函数,例如:

def consumer(context, event):
    context.logger.debug(event.body)
    print(event.trigger.kind)

就像这两个文件一样简单,而且我已经存在 kafka 集群,所以我只想触发它。

除了 nuclio,还有哪些可能的替代品?我看着 kubeless 似乎很复杂。Fission 不支持 python。

4

1 回答 1

0

我对 Nuclio 了解不多,但您描述的场景看起来可以使用 Knative。

最简单的方法,您可以为您的消费者创建一个Knative 服务。对于 Kafka 部分,您可以使用KafkaSource将事件导入 Knative Eventing 系统。在您的 KafkaSource 中,您可以告诉它在有来自 Kafka 的事件时调用 Knative 服务。

以上是最简单的方法。如果您需要更高级的功能,还支持基于事件类型的过滤或让多个消费者订阅事件和更多功能。

Red Hat 的Knative 教程有一个部分用于使用 Kafka 进行无服务器事件处理。

于 2020-08-07T09:22:10.030 回答