"这篇文档详细介绍了如何在两台服务器上设置memcached的双机热备,包括memcached、libevent的安装以及与Spring框架的集成。文档提到了repcached,一个支持复制功能的memcached版本,以实现数据的一致性。在安装过程中,需要注意依赖库的安装和配置,以及解决可能遇到的动态链接问题。" memcached是分布式内存对象缓存系统,用于在应用服务器之间共享数据,以减轻数据库的负载。在双机热备的场景下,当一台服务器出现故障时,另一台服务器可以无缝接管,保证服务的连续性和数据的可用性。 1. 安装libevent:libevent是一个事件通知库,memcached依赖它来处理网络事件。首先,解压libevent源码包,执行`./configure --prefix=/usr`配置,然后用`make`编译,`make install`安装。确认安装成功,可以通过`ls /usr/lib | grep libevent`检查库是否存在。 2. 安装memcached:接着,安装memcached,指定libevent的路径,使用`./configure --with-libevent=/usr`。同样,编译和安装。安装完成后,可以在/usr/local/bin/目录下找到memcached可执行文件。 3. 安装repcached:repcached是带有数据复制功能的memcached版本,它增强了memcached的高可用性。通过`./configure --enable-replication --program-transform-name=s/memcached/repcached/ --with-libevent=/usr`配置,`make`编译,`make install`安装。确保在启动repcached时指定主服务器的IP地址、端口、复制ID等参数。 4. 解决运行问题:如果在运行memcached或repcached时遇到动态链接错误,如找不到libevent-1.4.so.2,可以检查动态库的搜索路径。使用`LD_DEBUG=libs /usr/local/bin/memcached -v`来查看链接过程,确保库文件路径正确,并添加到系统库搜索路径中(例如通过修改/etc/ld.so.conf并运行`ldconfig`)。 5. 集成Spring:在Java应用中,通常会使用Spring框架来管理memcached客户端。通过引入相应的Spring库(如spymemcached),配置memcached的服务器地址和端口,可以在应用中方便地存取缓存数据。Spring提供了灵活的缓存抽象,可以轻松地将memcached与其他缓存策略结合使用。 这个过程涉及了分布式缓存的部署、故障转移、数据复制和Java应用的集成,确保了服务的稳定性和数据的可靠性。在实际操作中,还需要考虑监控、性能调优以及根据业务需求调整复制策略等因素。
1、下载软件
memcached-1.4.15.tar
libevent-2.0.17-stable.tar
memcached-1.2.8-repcached-2.2.1.tar
2、A)安装libevent-2.0.17-stable.tar
执行命令:
# ./configure --prefix=/usr
# make
# make instal
查看是否安装成功:
ls /usr/lib |grep libevent
B)安装memcached,同时需要安装中指定libevent的安装位置:
# ./configure -with-libevent=/usr
# make
# make install
检验安装成功:
[root@localhost memcached-1.4.15]# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 299597 Sep 22 12:52 /usr/local/bin/memcached
C)安装 memcached-1.2.8-repcached
#./configure --enable-replication --program-transform-name=s/memcached/repcached/ --with-libevent=/usr
#make
#make install
3、安装成功,启动memcached服务器
启动时注意问题:切换个用户,不能使用root身份运行。
起主memcached:
/usr/local/bin/repcached -l 10.3.88.155 -p 11200 -v -d
起副memcached:
/usr/local/bin/repcached -l 10.3.88.155 -p 11222 -x 10.3.88.155 -v -d
如果在64位系统中运行memcached可能会出现如下错误:
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
则使用libs参数调试:
LD_DEBUG=libs /usr/local/bin/memcached -v
可以看到以下输出:
10641: find library=libevent-1.4.so.2 [0]; searching
10641: search cache=/etc/ld.so.cache
10641: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
10641: trying file=/lib64/tls/x86_64/libevent-1.4.so.2
10641: trying file=/lib64/tls/libevent-1.4.so.2
10641: trying file=/lib64/x86_64/libevent-1.4.so.2
10641: trying file=/lib64/libevent-1.4.so.2
10641: trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2
10641: trying file=/usr/lib64/tls/libevent-1.4.so.2
10641: trying file=/usr/lib64/x86_64/libevent-1.4.so.2
10641: trying file=/usr/lib64/libevent-1.4.so.2
10641:
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
可知memcached并没有在/usr/lib中加载libevent-1.4.so.2,而是在/usr/lib64中。
故在/usr/lib64中创建/usr/lib/libevent-1.4.so.2的软链接:
ln -s /usr/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
查看memcached启动情况
ps aux|grep repcached
[root@localhost ~]# ps -ef | grep repcached
zhangzq 6803 1 0 Sep07 ? 00:00:00 /usr/local/bin/repcached -l 10.3
root 10704 5926 0 Sep07 pts/3 00:00:00 grep repcached
剩余5页未读,继续阅读
- 粉丝: 0
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦