社区
Web 开发
帖子详情
如何实现多服务器间内存数据同步
dyflovexlp
2011-09-25 07:45:11
情形:
一个activemq集群负责收集消息, 收到消息通知两台安装同一套程序的web服务器,这俩台服务器同时更新数据到自己的内存, 放数据到内存的目的是为了高速响应用户的查询。这两台web容器通过nginx做负载均衡。
问题是: 当其中一台web服务器宕机重启后,内存数据没了。。。服务nginx把请求映射到内存没数据的服务器,那用户查询将得不到数据。
...全文
565
6
打赏
收藏
如何实现多服务器间内存数据同步
情形: 一个activemq集群负责收集消息, 收到消息通知两台安装同一套程序的web服务器,这俩台服务器同时更新数据到自己的内存, 放数据到内存的目的是为了高速响应用户的查询。这两台web容器通过nginx做负载均衡。 问题是: 当其中一台web服务器宕机重启后,内存数据没了。。。服务nginx把请求映射到内存没数据的服务器,那用户查询将得不到数据。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sl514
2012-07-13
打赏
举报
回复
当然非要放内存的话 就用2楼的做法吧 memcached可以集群的 不错的
sl514
2012-07-13
打赏
举报
回复
这貌似没办法吧 你总需要数据持久载体的 放内存里 服务器一挂就歇菜了。
随风醉舞
2011-10-06
打赏
举报
回复
这个,还真不知道如何下手!!
完美灬缺陷
2011-09-26
打赏
举报
回复
帮顶下。
dyflovexlp
2011-09-26
打赏
举报
回复
那就只有把数据放到memcached了,牺牲一点速度...
liuyuhua0066
2011-09-25
打赏
举报
回复
这个有意思 看看有没有好的方案
Redis
服务器
管理(集群主从复制及高可用)
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些
数据
类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,
数据
都是缓存在
内存
中。区别的是redis会周期性的把更新的
数据
写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上
实现
了master-slave(主从)
同步
。 Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系
数据
库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 Redis支持主从
同步
。
数据
可以从主
服务器
向任意数量的从
服务器
上
同步
,从
服务器
可以是关联其他从
服务器
的主
服务器
。这使得Redis可执行单层树复制。存盘可以有意无意的对
数据
进行写操作。由于完全
实现
了发布/订阅机制,使得从
数据
库在任何地方
同步
树时,可订阅一个频道并接收主
服务器
完整的消息发布记录。
同步
对读取操作的可扩展性和
数据
冗余很有帮助。 本课程主要讲解以下内容:1. Redis的基本使用2. Redis
数据
库的
数据
类型3. Redis
数据
库
数据
管理4. Redis的主从复制5. Redis
数据
库的持久性6. Redis的高可靠性和集群7. Redis的优化和性能测试8. Redis
服务器
的维护和管理9. Redis
服务器
的常见问题排错
游戏
服务器
数据
同步
方案
游戏
数据
同步
方案 首先我们介绍实时对战手游中最难解决的技术问题——弱网络下的
数据
同步
问题。 通过对玩家的游戏
数据
进行观察,发现玩家的游戏环境存在很大差异,不同玩家会使用不同的2G/3G/4G/Wifi网络,不同网络之
间
的延迟相差很大。另外移动网络质量不稳定,且都是按流量收费,这些都是需要考虑的问题。手机在网络
间
的切换,又会造成底层网络断线、地址变化等问题,都是常见
Zookeeper
数据
同步
流程
在
服务器
启动阶段,会进行磁盘
数据
的恢复,完成
数据
恢复后就会进行Leader选举。一旦选举产生Leader
服务器
后,就立即开始进行集群
间
的
数据
同步
,在整个过程中,Zookeeper都处于不可用状态,直到
数据
同步
完毕,Zookeeper才可以对外提供正常服务。 一、
数据
初始化 在Zookeeper
服务器
启动期
间
,首先会进行
数据
初始化工作,用于将存储在磁盘上的
数据
文件加载到Zookeeper
服务器
内存
中。完整的
数据
初始化流程如下:
数据
的初始化从磁盘中加载
数据
的过程,主要包括了从快照文件中加载快照
数据
和
共享
内存
多进程
间
通信,进程
间
同步
使用信号量来
实现
Linux 环境下C编程指南,通过共享
内存
进行进程
间
通信的例子,进程
间
同步
使用信号量来
实现
。 代码 11-5 使用说明:这是一个简单的
服务器
和客户端程序,如果启动程序时不带参数,则执行
服务器
程序; 如果带参数,则执行客户端程序,所带参数只有一个,就是
服务器
端所显示的共享
内存
的引用ID。
实现
原理:
服务器
端启动后,创建信号量和共享
内存
,并将共享
内存
的引用ID显示出来,将信号量
大
数据
之路——
数据
同步
三、
数据
技术篇——
数据
同步
3.1
数据
同步
基础 @3.1.1 直连
同步
3.1.2
数据
文件
同步
3.1.3
数据
库日志解析
同步
3.2
数据
仓库
同步
方式3.2.1 批量
数据
同步
3.2.2 实时
数据
同步
3.3
同步
遇到的问题3.3.1 分库分表3.3.2 增量全量
同步
的合并@3.3.3
数据
漂移的处理 @ 有多种不同应用场景:主
数据
库和备份
数据
库之
间
的
数据
备份,主系统和子系统的
数据
更新,不用地域、
数据
库类型的
数据
传输交换 3.1
数据
同步
基础 @ 关系型
数据
库,结构化
数据
:MySQL、Oracle、DB2 非关
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章