想象一下许多不同的传感器发送值。有一个后端,可以在其中输入基于传感器 ID 和值的不同计算。这些计算将转换为 siddhi 应用程序,并部署在 siddhi 主机上。
为每个计算创建自己的应用程序的方法是否正确?
例
from a=SpeedStream[a.id == "s1"], b=SpeedStream[b.id == "s1"]
select b.speed-a.speed as acceleration
insert into AccelerationStream
相同的计算可能会多次部署,其中只有 a.id 和 b.id 不同。
这种方法正确吗?
将
用例划分到多个 siddhi 应用程序将有助于提高可维护性。 它有时会导致多次部署相同的查询,这很好。
尽管我建议在管道开始时使用过滤器,以便仅过滤掉需要处理的事件,以提高效率。
from SpeedStream[id == "s1"]
select *
insert into FilteredSpeedStream;
现在,FilteredSpeedStream 可以在以后的查询中使用,如果没有筛选器,FilteredSpeedStream 将只有一种传感器类型的事件,从而使管道高效。