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。

2. 启动 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

(4) 测试故障切换

手动停止memcached: 在 10.1.1.7(master)

pkill -9 memcached

观察vip 飘逸

ip addr show ens33

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/903169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别进度失控:用燃尽图补上甘特图的监控盲区

在职场中,项目经理最头疼的莫过于“计划赶不上变化”。明明用甘特图排好了时间表,任务却总像脱缰野马——要么进度滞后,要么资源分配失衡。甘特图虽能直观展示任务时间轴,但面对突发风险或团队效率波动时,它更像一张“…

爬虫-oiwiki

我们将BASE_URL 设置为 "https://oi-wiki.org/" 后脚本就会自动开始抓取该url及其子页面的所有内容,并将统一子页面的放在一个文件夹中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…

业务中台与数据中台:企业数字化转型的核心引擎

前言:在当今数字化浪潮下,企业为了提升运营效率、加速创新步伐并更好地适应市场变化,业务中台与数据中台应运而生,成为企业架构中的关键组成部分。本文将深入探讨业务中台和数据中台的简介、发展史、技术流环节以及在实际生产中的…

django admin 去掉新增 删除

在Django Admin中,你可以通过自定义Admin类来自定义哪些按钮显示,哪些不显示。如果你想隐藏“新增”和“删除”按钮,可以通过重写change_list_template或使用ModelAdmin的has_add_permission和has_delete_permission属性来实现。 方法1&…

基于云原生架构的后端微服务治理实战指南

一、引言:为什么在云原生时代更需要微服务治理? 在单体应用时代,开发和部署虽然简单,但随着系统规模的扩大,单体架构的维护成本急剧上升,部署频率受限,模块之间相互影响,最终导致系…

MIT6.S081 - Lab10 mmap(文件内存映射)

本篇是 MIT6.S081 2020 操作系统课程 Lab10 的实验笔记,目标只有一个:实现文件映射到内存的功能,也就是 mmap。 作为一名 Android 开发者,我可太熟悉 mmap 这个词儿了。Android 的 跨进程通信 Binder 驱动、图形内存分配和管理、…

基于BenchmarkSQL的OceanBase数据库tpcc性能测试

基于BenchmarkSQL的OceanBase数据库tpcc性能测试 安装BenchmarkSQL及其依赖安装软件依赖编译BenchmarkSQLBenchmarkSQL props文件配置数据库和测试表配置BenchmarkSQL压测装载测试数据TPC-C压测(固定事务数量)TPC-C压测(固定时长)生成测试报告重复测试流程梳理安装Benchmar…

WinForm真入门(17)——NumericUpDown控件详解

一、基本概念‌ NumericUpDown 是 Windows 窗体中用于数值输入的控件,由文本框和上下调节按钮组成。用户可通过以下方式调整数值: 点击调节按钮增减数值键盘直接输入使用方向键调整 适用于需要限制数值范围或精确控制的场景(如年龄、参数配…

汽车自动驾驶介绍

0 Preface/Foreword 1 介绍 1.1 FSD FSD: Full Self-Driving,完全自动驾驶 (Tesla) 1.2 自动驾驶级别 L0 - L2:辅助驾驶L3:有条件自动驾驶L4/5 :高度/完全自动驾驶

AiCube 试用 - ADC 水位监测系统

AiCube 试用 - ADC 水位监测系统 水位检测在水资源管理、城市防洪、农业灌溉、家用电器和工业生产等多领域发挥积极建设作用。利用水位传感器,可以实现水资源的智能管理,提高生产效率。 本文介绍了擎天柱开发板利用 AiCube 工具快速创建 I/O 电压读取&…

秒杀压测计划 + Kafka 分区设计参考

文章目录 前言🚀 秒杀压测计划(TPS预估 测试流程)1. 目标设定2. 压测工具推荐3. 压测命令示例(ab版)4. 测试关注指标 📦 Kafka Topic 分区设计参考表1. 单 Topic 设计2. 分区路由规则设计(Part…

memcpy 使用指南 (C语言)

memcpy 是 C 语言标准库中的一个重要函数&#xff0c;用于在内存区域之间复制数据。它是 <string.h> 头文件中定义的高效内存操作函数之一。 函数原型 void *memcpy(void *dest, const void *src, size_t n); 参数说明 dest: 目标内存地址&#xff0c;数据将被复制到这…

跨境电商货物体积与泡重计算器:高效便捷的物流计算工具

跨境电商货物体积与泡重计算器&#xff1a;高效便捷的物流计算工具 工具简介 货物体积与泡重计算器是一款免费的在线工具&#xff0c;专门为物流从业者、跨境电商卖家和需要计算货物运输体积重量的用户设计。这款工具可以帮助您快速计算货物的体积和对应的空运、快递泡重&…

如何避免爬虫因Cookie过期导致登录失效

1. Cookie的作用及其过期机制 1.1 什么是Cookie&#xff1f; Cookie是服务器发送到用户浏览器并保存在本地的一小段数据&#xff0c;用于维持用户会话状态。爬虫在模拟登录后&#xff0c;通常需要携带Cookie访问后续页面。 1.2 Cookie为什么会过期&#xff1f; 会话Cookie&…

matlab simulink中理想变压激磁电流容易有直流偏置的原因分析。

simulink把线性变压器模块拉出来&#xff0c;设置没有绕线电阻的变压器&#xff0c;激磁电感和Rm都有&#xff0c;然后给一个50%占空比的方波&#xff0c;幅值正负10V&#xff0c;线路中设置一个电阻&#xff0c;模拟导线阻抗。通过示波器观察激磁电流&#xff0c;发现电阻越小…

电力系统失步解列与振荡解析

一、基本概念解析 1. 失步&#xff08;Out-of-Step&#xff09; 在电力系统中&#xff0c;失步是指并列运行的同步发电机因功率失衡导致转子间相对角度超过稳定极限&#xff0c;无法维持同步运行的状态。具体表现为&#xff1a; 当系统发生短路、负荷突变或故障切除等扰动时&…

ctfhub-RCE

关于管道操作符 windows&#xff1a; 1. “|”&#xff1a;直接执行后面的语句。 2. “||”&#xff1a;如果前面的语句执行失败&#xff0c;则执行后面的语句&#xff0c;前面的语句只能为假才行。 3. “&”&#xff1a;两条命令都执行&#xff0c;如果前面的语句为假则直…

Missashe考研日记-day28

Missashe考研日记-day28 1 专业课408 学习时间&#xff1a;2h学习内容&#xff1a; 今天先是预习了OS关于虚拟内存管理的内容&#xff0c;然后听了一部分视频课&#xff0c;明天接着学。知识点回顾&#xff1a; 1.传统存储管理方式特征&#xff1a;一次性、驻留性。2.局部性原…

01 appium环境搭建

环境搭建 Java JDKNode.jsAndroidStudio(提供sdk)appiumappium Inspector 相关安装包下载 链接&#xff1a;https://pan.xunlei.com/s/VOOf3sCttAdHvlMkc7QygsoJA1# 提取码&#xff1a;x4s5 AndroidStudio下载安装sdk AndroidStudio下载 安装运行&#xff0c;配置代理及测…

指针(4)

1.回调函数 回调函数就是通过函数指针调用的函数。 将函数的指针&#xff08;地址&#xff09;作为一个参数传递给另一个函数&#xff0c;当这个指针被调用其所指向的函数时&#xff0c;被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用&#xff0c;而是在特…