我正在寻找构建用于存储/处理数据的后端的最有效方法。基本上,数据被发送到服务器,解析然后保存到数据库。然后根据数据库中的其他数据对其进行一些处理,然后通过电子邮件或短信发出警报。
平台是 .NET,数据库是 SQL Server 2005 或 2008。
IE
- 温度传感器向服务器发送 4 个字节的数据。
- 服务器将数据转换为实际值,例如 20。
- 然后将该值保存到 SQL 服务器数据库。
- 然后根据表中为该传感器设置边界的行检查该值,即 0-50
- 如果超出范围,则会发出警报。(通过短信或电子邮件发送。)
这一切看起来都非常简单,但我正在寻找最好的方法,因为理想的情况是这一切都“实时”发生,并且每秒可能有 100 或 1000 个请求。我想利用 SQL 2005/08 的一些“新”功能,例如我几乎没有经验的 Service Broker、CLR 集成、触发器等。
步骤 1 和 2 已经完成。
考虑到排队事务的数量,使用服务代理或 MSMQ 是否明智?鉴于我需要查找边界数据,我应该在什么时候处理警报数据?我有一些想法,我希望如何处理数据,但不确定要使用的最佳技术/方法。
我的想法是(从第 3 步开始)是将数据提交给服务代理,后者又调用 CLR 过程来处理数据上的“业务逻辑”。或者我是否使用触发器将数据添加到服务代理以处理数据?服务代理可以直接调用 CLR 过程吗?考虑到我想以更多的事件驱动而不是轮询来处理数据,使用服务代理是否是正确的想法?
从我在 Service Broker 上看到的示例来看,您似乎需要有代码来接收数据,而我真正想做的就是将数据添加到队列中并自动清空队列(将警报数据处理为它这样做)。
我可以通过标准存储过程来完成所有这些工作,但我想尽可能少地使用存储过程,而是使用 CLR 集成,因为业务逻辑将比示例中复杂得多。
鉴于服务代理处理排队和线程,我认为它可能是调用 CLR 过程来处理警报数据并发送短信或电子邮件的好选择?
请给我看光!谢谢!