CentOS 7上Memcached的安装、配置及高可用架构搭建

Memcached是一款高性能的分布式内存缓存系统,常用于加速动态Web应用的响应。本文将在CentOS 7上详细介绍Memcached的安装、配置,以及如何实现Memcached的高可用架构。


(1)、搭建memcached 主主复制架构

Memcached 的复制功能支持多个 Memcached 之间相互复制(双向复制,主备都是可读可写的),可以解决 Memcached 的容灾问题。

memcached 本身不支持相互复制,需要卸载rpm 安装的memcached ,换带有支持复制功能的

memcached;

yum -y remove memcached

(2)、环境准备

假设有两台服务器用于 Memcached 主主复制,分别为 Server A(10.1.1.7)和 ServerB(10.1.1.12)。确保两台服务器都运行 CentOS 7 系统,并且网络可以正常通信。

(3)、安装依赖

在两台服务器上都执行以下命令安装编译所需的依赖:

yum install -y gcc make libevent-devel

(4)、下载并安装支持复制的 Memcached(repcached)

repcached 是实现 Memcached 复制功能的扩展,以下是安装步骤:

  1. 下载 repcached

如果上述链接不可用,你可以在 SourceForge 等网站上查找合适的版本。

wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz

  1. 解压文件

tar -xzvf memcached-1.2.8-repcached-2.2.tar.gz

cd memcached-1.2.8-repcached-2.2

  1. 配置编译选项

./configure --prefix=/usr/local/memcached --enable-replication --with- libevent=/usr/lib6/

  1. 编译并安装

make

make install

编译过程中报错处理:

修改完文件,执行如下命令:

vi memcached.c //改成如下样子,删了两行内容

55 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */

56 #ifndef IOV_MAX

57 # define IOV_MAX 1024

58 #endif

vim replication.c //修改添加一行

make clean

make &&make install

(5)、配置主主复制

  1. 启动 Server A 的 Memcached

useradd memcached

cd /usr/local/memcached/bin

./memcached -d -u memcached -m 64 -l 10.1.1.7 -p 11211 -x 10.1.1.22

参数说明:

-d :以守护进程模式运行。

-u root :以 root 用户身份运行。

-m 64 :分配 64MB 内存给 Memcached。

-l 192.168.1.10 :监听的 IP 地址。

-p 11211 :监听的端口。

-x 192.168.1.11 :指定要同步数据的对端服务器 IP。

  1. 启动 Server B 的 Memcached

参数含义与 Server A 类似,只是监听 IP 和同步对端 IP 相反。

cd /usr/local/memcached/bin

./memcached -d -u memcached -m 64 -l 10.1.1.22 -p 11211 -x 10.1.1.7

(6)验证主主复制

  1. 在 Server A 插入数据
  1. 在 Server B 验证数据

如果能获取到在 Server A 上插入的数据,说明主主复制配置成功。同理,在 Server B 上插入数据,也应该能在 Server A 上获取到。

搭建memcached 主主复制+keepalived 高可用

  1. 在两个节点上都安装keepalived

yum -y install keepalived ipvsadm

  1. 在10.1.1.7 上的配置

Vi /etc/keepalived/keepalived.conf

vrrp_script chk_memcached {

script "/usr/bin/pgrep memcached"

interval 2

weight -20

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

10.x.x.x

}

track_script {

chk_memcached

}

}

root@gyh keepalived\]# 在10.1.1.22上,仅修改state和priority state BACKUP priority 90 1. 启动keepalived > systemctl start keepalived > > systemctl enable keepalived ![](https://i-blog.csdnimg.cn/direct/ab3b1c6ba4c344828f570e0478f95c47.png) (4) 测试故障切换 手动停止memcached: 在 10.1.1.7(master) pkill -9 memcached 观察vip 飘逸 ip addr show ens33 ![](https://i-blog.csdnimg.cn/direct/b406767e54ce414185c05f24081d7a41.png)

相关推荐
艾厶烤的鱼19 分钟前
架构-系统工程与信息系统基础
架构
nbsaas-boot2 小时前
分布式微服务架构,数据库连接池设计策略
分布式·微服务·架构
littleplayer2 小时前
iOS Swift Redux 架构详解
前端·设计模式·架构
零一码场2 小时前
IMA之ima_read_file 和 ima_post_read_file不同
架构
啊吧怪不啊吧4 小时前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
掘金-我是哪吒4 小时前
分布式微服务系统架构第119集:WebSocket监控服务内部原理和执行流程
分布式·websocket·微服务·架构·系统架构
李菠菜5 小时前
CentOS系统指定版本Docker与Docker-Compose在线安装教程
docker·容器·centos
Leo.yuan6 小时前
数据仓库是什么?数据仓库架构有哪些?
大数据·数据库·数据仓库·架构·数据分析
SimonKing6 小时前
惊!未实现Serializable竟让第三方接口回调全军覆没
前端·程序员·架构