实时数据分布式服务器的策略

来源:互联网 发布:男士护肤吧 淘宝店铺 编辑:程序博客网 时间:2024/06/03 17:04

对于多并发实时数据的服务器,需要考虑的一些策略,使负载能在不同的服务器进程中异步处理,含有当机恢复服务器进程数据,动态维护服务器进程,提高数据读写的速度等。

 其中的一些策略如下:

1、p2p :服务器网关中转客户端地址数据消息到另一客户端,客户端之间通信大文件(以及语音单聊)。

2、多网关。

(1)用户网关

支持网关连接的负载均衡,通过网关的分配服务器分配用户连接到的网关。网关支持多端(pc端和手机端)登陆,则每个端登陆不同的用户网关。

(2)媒体系统网关

每个媒体系统含自己的网关。用户进入子系统时会重新登陆子系统的网关(如进入视频/语音频道会重新登陆频道的网关)。

另外,用户的多端在子系统如果是互斥的就不需要考虑子系统下的多端登陆的多连接问题。

3、多会话服务器。主要负责中转消息。缓存角色重要数据。当机时数据会转移到另一台服务器(通过网关)。

对于多端登陆,会话服务器中的角色需要保存多个网关连接对象。

4、中转服务器,负责会话服务器之间转发消息。

5、业务服务器分为多服务器

消息派送方式的服务器选择:

(1)硬哈希(使用配置数量取模)

使用配置数量取模方式选择业务服务器。缺点:服务器数量不可变化。

(2)根据业务服务器连接数量

转发消息服务器上根据业务服务器连接数量选择业务服务器,每次选择下一个。优点:可动态启动服务器,消息流程较简单,一定程度的负载均衡。缺点:数据及其操作分散。

(3)一致性哈希(负载服务器)

 负载服务器负责同步服务器哈希列表。

优点:负载分布较好,负载服务器可记录各个业务服务器的负载,可动态启动业务服务器,其他服务器可根据哈希表直接发送消息到业务服务器。

缺点:负载服务器需要较稳定,有维护哈希列表成本,发送消息需要查询哈希表。

理论分析参考:http://blog.csdn.net/chenjiayi_yun/article/details/41624603

6、数据库

(1)数据表分片

针对记录较多的表,需要常查询与插入。

(2)分库

针对记录较多的一类表。

7、数据缓存

(1)自定义数据cache进程

热点数据的业务进程会对应有一个数据缓存进程,以热加载为主。如登陆数据cache服务器、好友数据cache服务器、其他业务数据cache服务器(如鲜花数据缓存服务器)。

(2)memcached数据备份(或者redis)

有不同的方式来使用,一般不可同时使用不同策略。键为自定义字符串键(或者枚举),内容为json数据(或者单个值的字符串);或者数据为map。

方式一:写策略,buffer数据 

把数据及时同步到memcached,使业务进程内存与memcached中的数据是一致的。 加速业务进程的当机恢复数据,延长写库时间。

1)进程启动,缓存对象到memcached。

2)内存修改对象时,缓存对象到memcached。

3)内存对象删除时,删除memcached中对象。 

4)根据内存对象活跃时间,删除不活跃对象对应的memcached对象(如3天没有访问的)。

方式二:读策略,cache数据

把数据加载到memcached,加速数据读取,热加载为主

1)在数据访问时加载数据到memcached(或者在进程启动时完全加载,这种需要内存足够大,启动时会有一定时间消耗)。一般适合在中小型应用。

2)动态热加载,在第一次需要数据时同时加载到内存和memcached。 设置memcached对象时间期限(比如30天),让memcached根据回收算法自行回收。较好利用内存。


0 0
原创粉丝点击