我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Memcached+magent实现主从同步 +keepalived高可用群集

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Memcached+magent实现主从同步 +keepalived高可用群集

Memcached+magent实现主从同步 +keepalived高可用群集

简介

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

实验部署

主机名称 IP地址 主要服务软件
memcached主服务器 172.16.10.138 memcached,libevent,magent,keepalived
memcached从服务器 172.16.10.137 memcached,libevent,keepalived
客户端 172.16.10.134 telnet测试
  • 配置memcached主缓存节点服务器
tar xf libevent-2.1.8-stable.tar.gz -C /opt
tar xf memcached-1.5.6.tar.gz -C /opt
tar xf magent-0.5.tar.gz -C /opt

cd /opt/libevent-2.1.8
./configure --prefix=/usr   #指定安装路径
make && make install    #编译安装

cd /opt/memcached-1.5.6
./configure --with-libevent=/usr      #指定安装路径
make && make install               #编译安装

ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6     #主服务器上magent服务需要这个模块

cd /opt/magent

vim ketama.h 
#ifndef SSIZE_MAX                        #修改
#define SSIZE_MAX 32767             #修改   
#endif

vim Makefile
LIBS = -levent -lm                      #修改,添加-lm

 make 

cp mgent /usr/bin #把生成的mgent程序让系统识别

  • 配置memcached从缓存节点服务器
tar xzvf memcached-1.5.6.tar.gz -C /opt
tar xzvf libevent-2.1.8-stable.tar.gz -C /opt

cd /opt/libevent-2.1.8
./configure --prefix=/usr
make && make install

cd /opt/memcached-1.5.6
./configure --with-libevent=/usr
make && make i nstall

ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6    #主服务器上magent服务需要这个模块
  • 主服务器将magent文件复制到从服务器

yum install openssh-clients

scp magent root@172.16.10.137:/usr/bin/ //把产生的magent文件直接复制到从服务器。

  • 主服务器安装keepalived服务,修改配置文件

yum -y install keepalived

vim /etc/keepalived/keepalived.conf

router_id MAGENT_HA                                #router_id主从不能相同,要修改

vrrp_script magent {
    script "/opt/shell/magent.sh"
    interval 2   
       }        #定义一个新函数,每2s自动执行这个脚本                        

vrrp_instance VI_1 {
state MASTER  #这边是主服务器,从服务器是BACKUP      interface ens33   #网卡接口是ens33                          
virtual_router_id 51                              
priority 100    #优先级,从服务器小于主服务器         advert_int 1
authentication {
         auth_type PASS
         auth_pass 1111
      }

track_script {
        magent      #触发执行magent脚本           
      }

virtual_ipaddress {
        172.16.10.200    #虚拟IP(vip)
       }
      }
将下面多余的配置全部删除
  • 主服务器安装keepalived服务,修改配置文件

yum -y install keepalived

vim /etc/keepalived/keepalived.conf

router_id MAGENT_HB    #router_id主从不相同          
      vrrp_script magent {
        script "/opt/shell/magent.sh"
        interval 2   
       }    #定义一个新函数,每2s自动执行这个脚本  

vrrp_instance VI_1 {
state MASTER   #这边是从服务器,是BACKUP  
interface ens33    #网卡接口是ens33
virtual_router_id 51                       
priority 90   #优先级,从服务器小于主服务器   
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
      }

track_script {
    magent     #触发执行magent脚本
      }

virtual_ipaddress {
        172.16.10.200                                               #虚拟IP(vip)
       }
      }
            将下面多余的配置全部删除
  • 主服务器编写magnet脚本

mkdir /opt/shell

vim /opt/shell/magent.sh

            #!/bin/bash
      K=`ps -ef | grep keepalived | grep -v grep | wc -l`
      if [ $K -gt 0 ]; then
        magent -u root -n 51200 -l 192.168.58.100 -p 12000 -s 192.168.58.135:11211 -b 192.168.58.132:11211
      else
      pkill -9 magent
      fi

      -n 51200 #定义用户最大连接数
      -l 192.168.58.100 #指定虚拟IP
      -p 12000  #指定端口号
      -s #指定主缓存服务器
      -b #指定从缓存服务器

       #这个脚本意思就是一旦检测到系统进程中有keepalived进程,就执行magent这条命令,如果没有,则将magent进程杀死。总得来说就是,主服务器上没有keepslived进程,magent就会和从服务器连接。

            chmod +x /opt/shell/magent.sh 
       #给脚本添加执行权限
  • 从服务器编写magent脚本

mkdir -p /opt/shell

vim /opt/shell/magent.sh

#!/bin/bash
K=`ip addr | grep 192.168.58.100 | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.58.100 -p 12000 -s 192.168.58.135:11211 -b 192.168.58.132:11211
else
pkill -9 magent
fi  
#从服务器的脚本意思就是检测到虚拟ip漂移是否到自己身上,如果VIP进行漂移到从服务器之后,就会执行magent这条命令,目的就是在主服务器宕掉的时候,从服务器能够正常启动。
  • 实验验证

首先使用客户机安装telnet,远程连接VIP节点,写入用户之后,主从缓存服务器会自动获取下载该用户。

Memcached+magent实现主从同步 +keepalived高可用群集

Memcached+magent实现主从同步 +keepalived高可用群集

Memcached+magent实现主从同步 +keepalived高可用群集

Memcached+magent实现主从同步 +keepalived高可用群集

Memcached+magent实现主从同步 +keepalived高可用群集

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Memcached+magent实现主从同步 +keepalived高可用群集

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用Keepalived+HAProxy高可用集群K8S实现

今天小编给大家分享一下怎么用Keepalived+HAProxy高可用集群K8S实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一
2023-06-29

基于keepalived配置数据库主从实现高可用

基于keepalived配置数据库主从实现高可用使用keepalived来监听端口,实现数据库的高可用。实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后,数据能够自动同步,保持数据一致性。主从配置架构图及原理主从状态
基于keepalived配置数据库主从实现高可用
2021-08-06

构建高可用的MySQL集群:主从复制与负载均衡的最佳实践指南

构建高可用的MySQL集群:主从复制与负载均衡的最佳实践指南近年来,随着互联网的快速发展,数据库已成为大部分Web应用的核心数据存储和处理引擎之一。在这个场景下,高可用性和负载均衡成为了数据库架构设计中的重要考虑因素。而MySQL作为最受欢
2023-10-22

编程热搜

目录