频繁访问WCF服务的最佳方式

时间:2016-09-19 07:18:11

标签: c# wcf crm lookup

我有一个WCF服务。 WCF服务公开了一组直接与CRM对话的方法。我从这些服务获得的大多数数据都是查找数据,而且我经常收到这些数据。这会降低性能,因为我网站中的单个表单包含从CRM获取的多个查找。

为了解决这个问题,我想到了:

*创建一个Windows服务,它将获取所有数据并保存在本地数据库中。该服务将在特定时间后运行,以确保所有数据同步。

*缓存数据。对于对检索cretin查找类型的方法进行的每次调用,数据都将被缓存,以便任何类似的调用都将返回缓存的数据。

我的问题是:

1 - 还有比这更好的方法吗?

2 - 如果不是,哪个更好?

1 个答案:

答案 0 :(得分:0)

我不建议创建缓存服务以提供对CRM数据的更快访问。它只是一个具有持久性的远程缓存,也可以像你提到的第二种方法一样集成到你的wcf服务中。

如果您可以保证所选数据在1小时前从CRM系统中选择时仍然有价值,那么您使用缓存的方法就是正确的方法。问题是,如果您的客户可以接受在过去一小时内在CRM中完成的最新更改。 只是说 - >小心缓存。

我的提示: 如果你的wcf服务频繁访问,例如每秒100次,那么缓存5-10秒通常会减少访问量,因为不会大幅减少数据的实际情况。

但: 大多数数据库系统和表旨在提供快速,并发的数据读取访问(例如,分页)。例如,Ms-Sql存储已知的常用脚本和存储过程的执行计划,以提高将来调用的性能。 因此,首先要确保您的CRM在引入缓存之前确实无法处理您的读取访问(通常应该谨慎使用)。