我们正在构建一个web应用程序来监控工业设施,我们需要添加一个模块,当系统中发生某些事情时,我们需要向用户发出通知。
我们从设备机器获得数据(大量数据)为10分钟数据序列(每10分钟a值,如机器的组件温度、输出性能、功耗等),并将数据存储在cassandra DB中。所使用的框架是Django。
这些是我们需要通知的事情(当事件发生时,我们需要发出通知,所以没有批处理):
通知的细节(百分比、时间跨度等)应该是每个用户可配置的。
我们正在寻找一个通用的可定位的设计,因为未来可用通知的列表将会增加。有人处理过类似的问题吗?你是怎么处理的?
我只是在寻找关于如何设计这个的一般提示,这就是为什么我没有给出太多的细节。
我在寻求关于如何设计通用系统的帮助。问题是如何定义每个通知的规则,因为我必须关注数据的演变(通知不是定义为“发生了什么事情”,而是定义为“某件事情连续发生了X次”)。
主要问题是:
请不要关注用户设置,或者如果事件应该通过电子邮件通知或推送到移动应用程序,这并不重要:-)
发布于 2017-09-29 21:00:57
所以,我要说的是,在没有进行足够的研究的情况下,你似乎已经走上了“让我们从头开始”的道路。你想要的那种系统存在于很多地方,其中许多地方甚至不需要你付费。
对于这种问题,我最喜欢的工具是弹性堆。它具有高度的灵活性和高度的可伸缩性,可以接收大量具有低延迟的事件,解析它们并对它们进行索引。有各种类型的输出可以配置为包括通知。
甚至还有一个他们发布了关于根据复杂事件执行警报和通知的特定文章。。
发布于 2017-09-29 21:53:07
我要做以下几点:
当然,有很多优化策略,在优化任何东西之前都要测量。
https://softwareengineering.stackexchange.com/questions/358345
复制相似问题