(以下问题是有点长,所以如果你在持续兑现不感兴趣,并通知随意按下浏览器的X按钮!)与发布/订阅持久数据高速缓存的OnChange
我们我们的任务是实现一个持久的数据存储,它将保存大量的数字信息。
基本上使用情况是:
你会得到与数据更新等需要在数据存储进行传播插入饲料。
1.1。 更新频率当前范围从1饲料1到10秒。但是稍后我们可能会获得更多的可扩展性功能。
1.2。 卷。每个Feed将大致为100K行(即使值没有变化,它仍然会在Feed中)
- 需要坚持这些值。一旦发生这种情况,那么C#服务器需要通知偶数。理想的事件。由于供稿将包含理想情况下未发生变化的数据,因此服务器事件应该与增量一起出现,而不仅仅是
OnStuffChanged
。
实施
由于系统使用SQL Server的一些非技术人员已为执行签字的SQL Server的使用。这种味道对我来说不好!但在任何情况下都做了一些研究,并发现关于SqlDependency API上的Wrapper。
但是我看到appi带有一个行李箱,形式为长列表(http://msdn.microsoft.com/en-us/library/ms181122%28v=sql.105%29.aspx
)。我还看到,MS表示,对于次级表现来说效率不高(目前情况并非如此,但可能在未来)。
具体性能&可靠性MS说
“查询通知可能不适合应用的最佳选择时,通知必须以亚秒级的响应时间接收,当网络基础设施不既快又可靠的,或者通知量非常高的时候。“
和建议alternatives to query notification如:
- 更新触发(我不触发寿的大风扇)被监测表,其作用是使用SQL Server服务的经纪人后,发送消息给需要通知的更新。
- 执行定制中间件存储和通知。
(伙计们,我很开始要感谢您的耐心!)
所以问题是,我真的觉得除了定制中间件之外,其他的想法都不错。
问题
- 有没有人有与
SqlDependency
和Service Broker
体验动手?你认为我应该开始一场反对管理的运动,以防止第一个地方出现技术错误? - 我觉得也许我应该使用类似
redis/memcached/mongo
这样的数据缓存。他们提供持久性。我确信我可以找出一种方法将它们与关系型数据库联系起来,并将更改的/新的号码提供给服务器进行处理。这不是更有意义吗? - 也许我只是过度设计的事情。我应该改为其他建议(建议``)类似的stackoverflow问题?
道歉为冗长的职位!如果您已经阅读过此文,请提前感谢您!
SqlDependency有这种难闻的气味。感谢您确认Remus。 – George 2012-07-11 10:19:27
请记住,[“计算机科学中只有两件难事:缓存失效和命名事情。”](http://martinfowler.com/bliki/TwoHardThings.html) – 2012-07-11 10:24:14
哈哈哈也许我应该在我的办公桌:-D – George 2012-07-11 15:27:07