请教有关多机热备的实现思路
有个程序改造任务,以前是单机运行,现在要改成多机运行。
当前实现(单机):
20万客户,平均每秒钟每个客户的某个属性值要根据某个条件重新计算更新2-3次,条件来自外部报文或者内部定时器等,所以把20万客户的所有数据全部读取到内存以便快速操作,客户的这个属性值要供外部实时查询。
改造要求:
1、用户量增大(如100万),单机运行速度无法满足时,要求把所有100万客户均衡分布到多台机器上处理;
2、防止单点故障,多机同时运行,对外部透明,只要还有一台机器正常运行,系统的功能就能实现;
遇到的困难:
1、假设100万客户平均分布到4台机器处理,处理的结果数据怎么集中,总不能让外部查询机器跟每台机器要一次吧,如果用数据库做中转,性能不知道能不能满足,多个进程对同一个表频繁的读写会不会很慢?
2、如果其中某台机器故障,该机器处理的客户怎么转移到其他机器上?
请各位兄弟给个思路,谢谢!
[解决办法]
你只要有机器就可以了,把系统作成两大部分,前置处理和计算处理,前置处理与客户机通讯,把客户请求的数据分区,根据数据的区域找到处理机,进行处理在把结果返回到客户机,然后每种类型的数据都做“双机”就可以了。