日期:2014-05-20  浏览次数:20907 次

.net集群带来的问题(多台服务器+多台数据库服务器)
asp.net 项目,考虑到数据量巨大,所以无论是web服务器还是数据库服务器都可能有很多台

以前做的项目都是很简单的,一台web服务器和一台数据库服务器,但是现在做多个服务器的话,带来许多原来不要考虑的问题
1.session问题:如果用户从服务器A跳到服务器B session变了,我怎么设置来实现调用同一个session(放入数据库?)
2.数据统一问题:如果多台数据服务器,我怎么保持数据统一(通过建立一个总服务器,所有服务器向总服务器定时更新,然后总服务器再定时更新子数据库服务器?)
3.文件上传问题:上传的文件怎么控制(用专门的服务器存储文件?上传文件表设计的时候 把存储服务器的ip+地址一起记下来?)

------------------------------------------------------------------------------------
因为以前没接触过多服务器,不知道我的想法对不对,各位是怎么解决的?谢谢大家指教!!!


------解决方案--------------------
数据库分库分表
使用更多的应用层服务器做cache
------解决方案--------------------
1.数据库同步、复制、镜像均可以解决一致性问题,也可以自行编写同步中间层;
2.引入cache管理用户,网站静态化,读写分离实现。。
------解决方案--------------------
集群时你会发现,除了在每一个asp.net应用服务器进程内部的Cache还仍然屹立不倒以外,其它的什么Session之类的东西都消退了。因此实际上如果在进行asp.net,我主张不要使用Session集合。
------解决方案--------------------
可能你没有将服务器进行进一步有效地区分。

asp.net应该是一个应用服务器,也就是说asp.net不过是前端应用程序而已。

而其数据库数据,则可能来自于单独的数据库服务器。可能你选择了Sql Server,也可能你选择了 MongoDB,这确实会有一些性能区别,但是我会选择使用一个业务层服务器来隔离开(这个服务器背后有多少台服务器用于数据分片和计算,asp.net应用程序不用去管)。