物联网系统以及各类互联网分布式系统,消息队列是最常用到的中间件技术。在物联网系统中,消息队列一般和规则引擎结合使用,规则引擎决定消息会进入消息队列的哪个topic。
为啥要用规则引擎
规则引擎起源于基于规则的专家系统,是专家系统的一个分支,而专家系统可划分为人工智能的范畴。当时人们提出专家系统,是为了让计算机来应用人类专家的经验,并像人类一样进行推理,最终解决特定领域的问题。
规则引擎是一种嵌入在其他应用程序中的程序组件,实现了将业务决策从应用程序代码中分离的作用。业务人员可以使用预定义的规则语义模块编写业务规则。规则引擎解析业务规则,接受数据输入,并根据业务规则做出业务决策。通过编写业务规则,就可以改变数据的处理逻辑,而不需要重新编写应用程序的代码。
当然如果不使用规则引擎,物联网系统只基于消息队列也可以工作,但这样的设计不够灵活,使用规则引擎可以带来很多好处。
- 与代码不同,规则以不复杂的语言编写,甚至可以通过图形化的工具配置; 业务人员也可以轻松阅读和验证一套规则。
- 在规则引擎的帮助下,应用程序的扩展性可以变得非常强。如果需要频繁更改需求,可以添加新规则,而无需修改现有规则。
- 在物联网系统