要做一个用户登录平台, 用户数量要求支持最多是几千万同时在线这样,然后这个平台有很多个游戏(大于1000个),
每个用户可以同时加入玩多个游戏(一般就10以内), 而同一个游戏中,用户间要通过2分钟内知道整个游戏中所有用户的动态数据状态(可能某个游戏参加人数有几个到几万个不等的用户),
目前已经实现了十万级别用户的支撑要求, 如果用户不断扩大, 如何设计服务器架构,才能实现分布式, 均衡服务器的访问压力?
问题关键就是怎么处理,让同一个游戏中 随时变化的用户状态被其他用户所知道,
或者有没有什么好的开源或者模块供参考(我们是c/c++语言实现的,其他语言排除),或者解决思路,谢谢。
好像听过Memcached分布式共享内存什么的,不知道是不是合用?
16 个解决方案
#1
补充一下: 当某个游戏用户超过1000个时, 可以仅获取到其中总数的1000个用户的动态数据即可。
#2
坐等.....学习。
#3
目前最高同时在线已经有30万了,单个服务器支撑不了60万, cpu处理不来访问请求,
大神,给点启示!!!
大神,给点启示!!!
#4
#5
学习
#6
论坛怎么这么冷清?
#7
memcached只是个key-value缓存
#8
有长连接服务吗
#9
要想实时感知用户状态变化:
1 需要要client和server直接的长连接通道(总不能定期去server拉取状态吧,决定是不可取的)
2 需要有自己的消息处理服务(发送状态变化,放入消息队列,通过长连接通知client)
1 需要要client和server直接的长连接通道(总不能定期去server拉取状态吧,决定是不可取的)
2 需要有自己的消息处理服务(发送状态变化,放入消息队列,通过长连接通知client)
#10
学习 坐等大神
#11
长连接? 应该不是用长连接吧? 这么多用户,怎么容纳,会死人的。
目前是定期UDP报告状态变化。
目前是定期UDP报告状态变化。
#12
最笨的方法升级硬件,换个cpu更多的服务器,装个2、3百G的内存,全ssd存储
另外lz现在用几台服务器来跑后台?
另外lz现在用几台服务器来跑后台?
#13
多服务器、多数据库模式,你懂的。
#14
现在是什么架构的都不说呢。。。
#15
长连接 zookeeper保持数据同步~~初步想法~~
#16
zk做数据同步你的服务器就废了,zk最适合分布式应用的协调服务。
你可以将zk作为server的协调服务器,前端加代理进行消息分发,用memcashed做缓存进行数据同步
#1
补充一下: 当某个游戏用户超过1000个时, 可以仅获取到其中总数的1000个用户的动态数据即可。
#2
坐等.....学习。
#3
目前最高同时在线已经有30万了,单个服务器支撑不了60万, cpu处理不来访问请求,
大神,给点启示!!!
大神,给点启示!!!
#4
#5
学习
#6
论坛怎么这么冷清?
#7
memcached只是个key-value缓存
#8
有长连接服务吗
#9
要想实时感知用户状态变化:
1 需要要client和server直接的长连接通道(总不能定期去server拉取状态吧,决定是不可取的)
2 需要有自己的消息处理服务(发送状态变化,放入消息队列,通过长连接通知client)
1 需要要client和server直接的长连接通道(总不能定期去server拉取状态吧,决定是不可取的)
2 需要有自己的消息处理服务(发送状态变化,放入消息队列,通过长连接通知client)
#10
学习 坐等大神
#11
长连接? 应该不是用长连接吧? 这么多用户,怎么容纳,会死人的。
目前是定期UDP报告状态变化。
目前是定期UDP报告状态变化。
#12
最笨的方法升级硬件,换个cpu更多的服务器,装个2、3百G的内存,全ssd存储
另外lz现在用几台服务器来跑后台?
另外lz现在用几台服务器来跑后台?
#13
多服务器、多数据库模式,你懂的。
#14
现在是什么架构的都不说呢。。。
#15
长连接 zookeeper保持数据同步~~初步想法~~
#16
zk做数据同步你的服务器就废了,zk最适合分布式应用的协调服务。
你可以将zk作为server的协调服务器,前端加代理进行消息分发,用memcashed做缓存进行数据同步