我们正在使用NServiceBus 4.6和SQL Server传输(2012)。使用可用性组设置SQL Server数据库以实现高可用性。
我们的DBA抱怨我们在传输数据库中发生的" churn" a 的数量,尤其是它在我们广域网上的负载。
我们目前正在使用XML序列化,所以我开始查看我们可以使用的其他序列化选项(可能会支持JSON,因此它仍然可读)。但是,在开始研究这个问题时,我意识到我们的消息体通常在600到1000字节之间,而我们的消息头通常在1200-1800字节 1 的范围内。因此,即使我在体型方面实现了很大的节省,也不会产生我正在寻找的大规模改进。
问题
根据我的理解,当消息存储在SQL Server数据库中时,标题不必是可读,有什么办法可以压缩它们吗?
或其他策略来减少我们在此数据库中添加和删除的数据量? (暂时留在NSB 4.6)
1 我们正在为元数据添加一些自定义标题,这些元数据实际上并不属于消息类。
a 由于每条消息至少进入一个队列表,然后从该表中删除并放在审计表中,之后我们删除较旧的审计条目,并且我们已经得到了很多消息,我们在SQL Server事务日志中投入了很多。
答案 0 :(得分:2)
您可以通过Mutator压缩和解压缩消息内容。 mutator示例实际上是基于压缩消息,因此应该是该部分的简单解决方案:
您可以添加一些代码,这些代码将对标题执行相同操作,在编写自定义属性之前压缩它们并在读取之前对其进行解压缩。