服务部署从单个服务器转向多台服务器引发的缓存不同步问题!

nyq1999 2009-12-23 01:29:01
一个Remoting服务,原先只部署于一台服务器,考虑效率及稳定性问题,现在部署于多台服务器,可是原先在服务内有多个static dictionary作为缓存,如果部署于多台则更新时会出现服务器间的数据不同步的问题.
哪位有比较好的解决方案或者有这方面的经验,分享一下啊.
想实现的效果是:缓存多个服务器都更新,数据库只更新一次,服务是对等的,程序及配置文件没有差异性.
有人提议调用次服务更新方法的时候,将每个服务器的服务都调取一遍(这个是笨方法,而且不可取,因为这样服务器缓存是每个都更新了,可也把数据库给更新了n遍....)
还有一种方法是缓存共用,放到一台缓存服务器上,可是这样效率会下降,没有本地缓存速度快.(这个可行,就是效率问题啊,而且现有的那堆缓存服务器好像不太稳定,如果挂了的话,并发高了我这边就吃不消了)
另外的一个方法就是服务间的消息通信了,都是对等服务,对每个服务发信息的话,这样会自己调取自己啊...Romoting自己调自己能行吗?
...全文
227 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nyq1999 2009-12-31
  • 打赏
  • 举报
回复
唉,工作毕竟不是研究,用了个最笨的办法,郁闷,没时间研究了~
trentliu 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nyq1999 的回复:]
现在的条件还没有一台服务器抗得住这高并发,虽然一般都是IO瓶颈导致,但服务器集群是唯一靠谱的方法
[/Quote]

尽可能的优化程序,提高缓存服务器硬件及系统的性能,得到显著提升不是不可能。
但是如果你考虑分布式还要数据同步,那就太难了
nyq1999 2009-12-25
  • 打赏
  • 举报
回复
现在的条件还没有一台服务器抗得住这高并发,虽然一般都是IO瓶颈导致,但服务器集群是唯一靠谱的方法
trentliu 2009-12-23
  • 打赏
  • 举报
回复
还是建议你考虑单服务器,多服务器分布式同步实在是个很复杂的事情

想搞就得深入了解数据库,表之间如何实时同步

首先你得有一个主缓存服务器,分开几个镜像缓存服务器。
主缓存和镜像缓存间同步

什么叫同步

1. 你新增了一条,我要取过来,这是new 同步
2. 你变更了一条,我也要变更,这是update 同步
3. 你删除了一条,我也要删除,这是delete 同步

....
太多了,太复杂了,你要想这么做,就一步一步深入研究下去吧。 每个十天半个月,你可能都没个整体概念。
Return门徒 2009-12-23
  • 打赏
  • 举报
回复
up jf

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧