2014-01-17 19 views
0

我们一直在构建的应用程序正在开始巩固,因为现在大部分功能已经到位。这给了我们一些喘息的空间,我们正在开始评估我们的持久性模型及其管理。我想你可以说房间里的大象是RavenDB。虽然我们在功能上尚未遇到任何问题,但我们对管理它并不舒服。简单的任务,比如执行查询,截断集合等,对我们来说都是一个挑战,因为我们一般都是基于平台和基于文档的NoSql解决方案。当然,我们有能力学习它,但我认为这归结于信心,时间以及利用我们现有的Sql Server技能集。例如,我们在几周内通过系统抽取了数百万个事件,并且成功处理的消息被发送到MSMQ中的审计队列。我们还安装了ServiceInsight,并处理审核队列中的消息,该队列咀嚼服务器上的所有磁盘空间。我们不知道如何解决这个问题,并且从字面上不得不删除我们为RavenDB找到的数据文件。让我只是说,这样做会引起各种头痛。因此,考虑到这一点,我一直负责评估可能利用Sql Server进行传输和/或持久化服务端点的可行性和益处。另外,我还可以使用一些指导来配置ServiceControl和ServiceInsight以利用Sql Server。任何您可能能够提供的有关配置这些信息以及识别我们应该考虑的任何缺陷或体系结构问题的信息都将不胜感激。NServiceBus&ServiceInsight Sql Server Transport&Persistence

谢谢,杰弗里

回答

3

使用SQL持久性需要很少的配置(实现细节),但是,使用SQL传输更多的是一个架构决策,然后基础设施之一,你正在改变以经纪人风格的建筑,那在进入这条路线之前需要考虑这些影响。

的ServiceControl和ServiceInsight持久性:

虽然的ServiceControl监控MSMQ作为默认传输,你可以使用的ServiceControl支持其他传输,如RabbitMQ的,SqlServer的为好,Here you can find the details of how to do that

目前的ServiceControl依赖(AFIK) 在ServiceControl的数据中有数据到期的问题有待解决,请参阅this issue in github

HTH

1

关于RavenDB(这是基本的服务,该数据用于ServiceInsight UI)的的ServiceControl用法:

肖恩法玛尔所述(上文),在测试后的版本中,我们将包括消息到期,以及按需审核的消息删除命令,以便您可以完全控制SC的容量利用率。

您还可以更改ServiceControl数据库位置的驱动器/路径,以允许它使用更大的驱动器。

请注意,ServiceControl(和使用它的ServiceInsight/ServicePulse)用于分析,调试和运行监控。它的目的是存储有限数量的审计数据(根据吞吐量和容量需求,当数量为消息数量时可能会有很大差异,但数据库存储容量可高达16TB)。

如果您需要长期存储审计数据,您可以挂接到ServiceControl HTTP API并将消息数据传输到各种长期/无限大小/低成本存储解决方案(例如http://aws.amazon.com/glacier)。

请让我们知道,如果这个回答您的需求,您是否有其他问题

丹尼。

相关问题