提高Web服务性能

时间:2013-04-24 13:24:50

标签: performance web-services web-applications architecture

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

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

    请提出解决此问题的最佳方法。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

过早优化是一件危险的事情。我的2美分,我建议尽可能快速,轻松地建立它。然后'让它变得更好'。添加图层等。最后一步是“让它更快”。在迈出第一步之前,您正在考虑最后一步。