.Net下的分布式缓存(3)--如果我们没有缓存会怎么样
2007-12-05 21:20
288 查看
.
Net下的分布式缓存--从Discuz!NT的缓存设计谈起
.Net下的分布式缓存(2)--实现分布式缓存同步的手段
.Net下的分布式缓存(3)--如果我们没有缓存会怎么样
上回说到了Memcached的性能问题,的确,缓存不是万能的,但没有缓存是万万不能的?还真有这么干的. PlentyofFish就是这样做的, 它也是互联网上巨头中为数不多的采用WISC(Windows + IIS + Sql server + C#)架构的网站, MS不能老拿MySpace说事, 现在当然不会放过这个机会大肆宣传, 但是讽刺的是人家根本不用那些“看起来很美”的服务器控件,与其说是使用了.Net技术不如说是借用了这个平台而已. 他们的页面输出绝大多数都是使用构造字符串要不就是Response.Write出来的,简单即是美,他们在写程序的时候即是严格遵守这个规则,反过来想想CommunityServer里面多达7层的继承关系的控件, 它看起来有点象是这个样子:(基本的)(网页的)(模版化的)(相册基本模版化的)(相册模版化的)(相册可更换风格的)XXX控件,瞧这一长串定语,它在每一层继承里面都实现了不同的特性, 结构其实还是蛮清晰的, POF有点象什么呢,手工打造的奥迪,性能没的说,就是麻烦点。那些B4 Discuz!NT的朋友是不是应该反思一下了呢:)
话说回来, 这并不意味着那堆微软件挖空心思弄出来的Control就没有用了, 但对于中小应用来说我们更需要的是开发效率,再说负载量达不那么大,有过度优化之嫌, 合适的就是最好的,能快速弄出让用户满意的东西才是最重要的。
我们来看看它里面的一些值得玩味的地方吧:
1. 千万级的照片请求都是由他们的服务器来完成处理的,但是它们都被缓存在内存中,并且大小都在2KB以下.
3. 使用Gzip技术虽然增加了30%的CPU开销但从节省的带宽情况来看是值得的.
4. 没有使用Asp.Net的缓存机制,因为数据更新太快了, 一旦它进入缓存就过期了.
5. 大量使用 if,else 或者 while + Response.Write这样的简单语句来实现功能.
6. 负载均衡(好象没有谁不用的)
每天3千万的页面访问量,服务器只有2 个WebServer + 3个DB Server,优化功夫实在是了得.
其它具体的东西可以看这个Post.
Net下的分布式缓存--从Discuz!NT的缓存设计谈起
.Net下的分布式缓存(2)--实现分布式缓存同步的手段
.Net下的分布式缓存(3)--如果我们没有缓存会怎么样
上回说到了Memcached的性能问题,的确,缓存不是万能的,但没有缓存是万万不能的?还真有这么干的. PlentyofFish就是这样做的, 它也是互联网上巨头中为数不多的采用WISC(Windows + IIS + Sql server + C#)架构的网站, MS不能老拿MySpace说事, 现在当然不会放过这个机会大肆宣传, 但是讽刺的是人家根本不用那些“看起来很美”的服务器控件,与其说是使用了.Net技术不如说是借用了这个平台而已. 他们的页面输出绝大多数都是使用构造字符串要不就是Response.Write出来的,简单即是美,他们在写程序的时候即是严格遵守这个规则,反过来想想CommunityServer里面多达7层的继承关系的控件, 它看起来有点象是这个样子:(基本的)(网页的)(模版化的)(相册基本模版化的)(相册模版化的)(相册可更换风格的)XXX控件,瞧这一长串定语,它在每一层继承里面都实现了不同的特性, 结构其实还是蛮清晰的, POF有点象什么呢,手工打造的奥迪,性能没的说,就是麻烦点。那些B4 Discuz!NT的朋友是不是应该反思一下了呢:)
话说回来, 这并不意味着那堆微软件挖空心思弄出来的Control就没有用了, 但对于中小应用来说我们更需要的是开发效率,再说负载量达不那么大,有过度优化之嫌, 合适的就是最好的,能快速弄出让用户满意的东西才是最重要的。
我们来看看它里面的一些值得玩味的地方吧:
1. 千万级的照片请求都是由他们的服务器来完成处理的,但是它们都被缓存在内存中,并且大小都在2KB以下.
3. 使用Gzip技术虽然增加了30%的CPU开销但从节省的带宽情况来看是值得的.
4. 没有使用Asp.Net的缓存机制,因为数据更新太快了, 一旦它进入缓存就过期了.
5. 大量使用 if,else 或者 while + Response.Write这样的简单语句来实现功能.
6. 负载均衡(好象没有谁不用的)
每天3千万的页面访问量,服务器只有2 个WebServer + 3个DB Server,优化功夫实在是了得.
其它具体的东西可以看这个Post.
相关文章推荐
- 一起谈.NET技术,.Net下的分布式缓存(3)--如果我们没有缓存会怎么样
- .Net下的分布式缓存(3)--如果我们没有缓存会怎么样
- 如果修改host后没有即刻生效,可使用终端命令手动清除DNS缓存:
- C++异常抛出后,如果没有写对应的CATCH,会怎么样?
- 如果缓存中的数据和数据库中的数据不同步的情况下,怎么样把缓存中的数据同步到数据库中?
- 在.NET中如果没有异常仍然执行catch块 是因为。。。
- 如果没有开源软件没有免费软件,这个世界会怎么样?------评[盖茨北大演讲遭遇开源人士抗议]
- .net中,如果用户没有登陆,就跳转的例子
- 【妈妈,如果你没有生我们的话,你…
- 如果没有钱,我们能相爱多久 [转]
- 在RB-INSERT的第16行中,假设新插入的结点z是红色的。注意如果将z着为黑色,则在红黑树的性质4)就不会被破坏。那么我们为什么没有选择将z着为黑色呢?
- read()接受缓存覆盖(如果没有读取,下次覆盖)
- xml中的xmlns,xmlns:xsi,xsi:schemaLocation有什么作用,如果没有会怎么样呢
- 开平方 如果没有计算器,我们如何求2的平方根? 可以先猜测一个数,比如1.5,然后用2除以这个数字。
- 如果没有开源软件没有免费软件,这个世界会怎么样?------评[盖茨北大演讲遭遇开源人士抗议]
- 如果没有开源软件没有免费软件,这个世界会怎么样?------评[盖茨北大演讲遭遇开源人士抗议]
- 春晚没有请六小龄童,假如我们程序猿去会怎么样?
- mount如果没有指定-t会怎么样?
- 我们公司原来C++招聘考试题,题目难度正常,没有稀奇古怪的题,如果答对60分以上,恭喜你基本算一个合格的网络开发工程师了。
- 高德地图:如果没有自己的key,会怎么样?