【问题标题】:Real-time rules editing and KafkaStreams实时规则编辑和KafkaStreams
【发布时间】:2016-10-11 14:53:25
【问题描述】:

我需要允许“业务”用户对从输入流中提取的数据创建和编辑规则。规则必须对业务友好,并且不能有任何开发周期。这是我的想法的一个例子:

"if weatherStation.id == 100 and weatherStation.temp < 33 and detectedPctWipersOn = 90% 
then return true 
else return false"

由于气象站和联网车辆流数据被摄取,我需要应用此规则,但如果规则更改为检测到的 PctWipersOn = 75%,则必须实时应用该规则,无需重新部署或重新启动.它需要数据驱动。

Siddhi CEP (WSO2 CEP) 似乎只支持“部署”规则。 是否有任何其他 CEP 产品可以满足我的需求,尤其是如果它们与 KafkaStreams 配合得很好?

如果我必须自己动手,是否有针对此问题推荐的“流”设计模式?

【问题讨论】:

  • 您的问题与 Kafka Streams 有关吗?我不确定,如果你使用正确的标签。
  • 我删除了 Siddhi 标签。是的,我正在寻找一个能够很好地集成 Kafka Streams 的业务友好型规则编辑器。我提到 Siddhi 只是为了表明它不符合我对这个问题的要求。
  • 我实际上想知道是否打算使用 Kafka Streams 标签 :) 从你的问题中我不清楚。因为我不认识悉地,所以我不确定答案。但是,从 Kafka Streams 的角度来看,我认为您不应该能够使用新规则更新应用程序没有任何问题。您只需要记住,如果您开始向外扩展,则很难以同步方式更新所有实例。

标签: complex-event-processing siddhi apache-kafka-streams


【解决方案1】:

对于这个要求,不要使用 Siddhi 引擎,而是尝试使用 CEP 产品。它带有一个query templating facility,您可以在其中拥有一些预定义的模板,其中只有向用户公开的参数来配置。例如:气象站温度。一旦更改了参数,CEP 将在内部重新部署查询,并且更改将立即生效。

这对于像您的示例中的过滤器这样的无状态查询非常有效,但是如果您使用窗口、模式等,状态将会丢失。因此您可能需要使用数据库支持的表/窗口来正确实现这种使用案例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2023-04-09
    • 2018-07-06
    相关资源
    最近更新 更多