2013-04-24 131 views
1

我有一个基于我需要应用一些业务逻辑并返回一个字符串值(旧的或新的)参数的参数很少的Web服务,该服务将在生产环境中频繁出现(每秒超过10个请求)。实现业务逻辑的最佳方式是什么?我希望服务能够非常快速且响应迅速。提高Web服务性能

  1. 在SQL表中存储数据(条件)并在C#中应用业务逻辑并返回值。
  2. 将数据(条件)存储在XML文件中,并且每次读取文件并应用C#中的业务逻辑并返回值。
  3. 将数据(条件)存储在SQL表中,并编写存储过程以实现SP侧的业务逻辑,并将值返回给服务。

注意:数据(条件)不会频繁变化。

请建议解决此问题的最佳方法。

回答

0

最快的方法是在业务逻辑之前推入一些内存中缓存层(例如redis)。这个解决方案的有效性取决于有多少不同的参数组合可能。如果不是很多 - 您可以将它们全部存储在内存中,并在条件发生变化时始终使缓存失效。

你说数据不会经常变化。我的问题是 - 如果数据(条件)的变化必须实时呈现给用户,或者有任何延迟是可能的?如果是这样,你可以使用反向代理缓存(例如varnish) - 这应该是非常快的。

+0

是的,数据(条件)变化必须实时显示。没有延误被接受。 – srieen 2013-04-24 15:10:55

0

过早优化是一件危险的事情。我的2美分,我建议尽可能快速和容易地建设它。然后“变得更好”。添加图层等最后一步是“让它变得更快”。你在考虑第一步之前的最后一步。