在MySQL的部署场景中,经常使用HAproxy和ipvs来作为读请求转发的网关.
ipvs的好处在于本身不需要daemon的方式来运行,而是直接作为kernel的服务来提供;
当ipvs和应用程序服务器在同一网段时,可以使用DR模式,这样可以避免在返回
数据时还需由网关来处理.

硬件:

ipvsadm服务器192.168.1.100,VIP虚拟ip配置为192.168.1.204

三台mysql从服务器:

192.168.1.135

192.168.1.136

192.168.1.137

一,安装ipvsadm

1,yum安装

#yum -y install ipvsadm

建立ipvsadm文件

#ipvsadm --save > /etc/sysconfig/ipvsadm

初始化配置

#ipvsadm -C

二,为ipvsadm服务器网卡配置一个虚拟IP

1,查看网卡名ip addr,记住en开头的网卡名,打开该网卡名的配置文件

#vi /etc/sysconfig/network-scripts/ifcfg-en你的网卡名

2,添加一行ip

IPADDR1=192.168.1.204

3,service network restart 重启网卡。

三,配置ipvsadm

1,ipvsadm -C清除之前的配置

2,在ipvs上新增一个服务器,使用负载平均分发到后端服务器的策略

#ipvsadm -A -t 192.168.1.204:  -s rr

3,为ipvs新增服务器增加后端真实的服务器

#ipvsadm -a -t 192.168.1.204: -r 192.168.1.135: -g
#ipvsadm -a -t 192.168.1.204: -r 192.168.1.136: -g
#ipvsadm -a -t 192.168.1.204: -r 192.168.1.137: -g #ipvsadm --save

4,查看配置情况

# ipvsadm -L
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:mysql rr
-> 192.168.1.135:mysql Route
-> 192.168.1.136:mysql Route
-> 192.168.1.137:mysql Route

四,配置Mysql从库服务器

(☞服务器安装在windows上如何配置?)

1,在回路接口(lo网卡)上新增ipvsadm服务器的ip地址

# vi /etc/sysconfig/network-scripts/ifcfg-lo

#添加下面一行
IPADDR1=192.168.1.204

2,添加静态路由,(更多详细操作

route add -host 192.168.1.204 dev lo

3,设置网卡通讯规则(更多细节

# echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
# echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
# echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
# echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
# sysctl -p >/dev/null >&1 #/dev/null 2>&1 是什么意思?

为了使配置永久生效,建议把配置写入/etc/sysctl.conf的文件中。

每台从库服务器都需要同样的配置。

在第三台主机上通过VIP登录mysql 3次后,可以看到ipvsadm平均分发了对从库的访问。

# ipvsadm -L
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:mysql rr
-> 192.168.1.135:mysql Route
-> 192.168.1.136:mysql Route
-> 192.168.1.137:mysql Route

最后可以使用sysbench做压力测试

本文在 使用IPVS分发MySQL读请求 的基础上根据自身的经验总结而来。

ipvsadm分发MySQL读请求的更多相关文章

  1. keepalived和lvs实现mysql读负载均衡

    keepalived+lvs实现对mysql读负载均衡 环境:redhat 6.5 real server: 172.25.254.189 172.25.254.224 lvs: 172.25.254 ...

  2. Mysql读写锁保姆级图文教程

    摘要:读锁会阻塞写,但是不会阻塞读,而写锁会把杜希俄都阻塞. 本文分享自华为云社区<Mysql保姆级读写锁图文教程丨[绽放吧!数据库]>,作者:Code皮皮虾 . 准备 创建mylock表 ...

  3. 扩展Redis的Jedis客户端,哨兵模式读请求走Slave集群

    原 扩展Redis的Jedis客户端,哨兵模式读请求走Slave集群 2018年12月06日 14:26:45 温故而知新666 阅读数 897   版权声明:本文为博主原创文章,遵循CC 4.0 b ...

  4. (10) 如何MySQL读压力大的问题

    如何进行读写分离 由开发人员根据所执行的SQL类型连接不同的服务器 由数据库中间层实现读写分离 读写分离时,需要注意,对于实时性要求比较高的数据,不适合在从库上查询(因为主从复制存在一定延迟(毫秒级) ...

  5. [高性能MYSQL 读后随笔] 关于事务的隔离级别(一)

    一.锁的种类 MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等,表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做dd ...

  6. nginx源代码分析--读请求主体(1)

    首先,读取请求体已进入HTTP要求11相,我们需要做的请求正文部分处理一些模块,所以这个模块需要注册功能在这个阶段,在阅读功能要求的身体ngx_http_read_client_request_bod ...

  7. rocketMQ broker 分发并处理请求

    使用 netty 监听端口 // org.apache.rocketmq.remoting.netty.NettyRemotingServer#start ServerBootstrap childH ...

  8. mysql 读写锁

    1. 表读锁 lock table tablename read; 例如: 从上图中可以看到,当给表a加了读锁之后,该进程本身对表a是可读的,但是不可写,再看在另外一个进程中: 在另外一个进程中表a也 ...

  9. 爬虫定时任务 redis 减轻 mysql 读的压力 加层

    非工作时间,定时任务爬虫大量mysq短链接,影响了其他业务的,mysql 报 too many connections  错误 将爬虫url池放入到redis中,单独的脚本维护redis url池的更 ...

随机推荐

  1. NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

    NET Core 1.1 静态文件.路由.自定义中间件.身份验证简介   概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要 ...

  2. Spark Mllib里如何提取每个字段并转换为***类型(图文详解)

    不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第17章 决策树多元分类UCI Covertype数据集

  3. ML.NET 示例:目录

    ML.NET 示例中文版:https://github.com/feiyun0112/machinelearning-samples.zh-cn 英文原版请访问:https://github.com/ ...

  4. 总结一下WindowListener的用法

    记录一下便于自己查看 1.WindowListener java.awt.event 接口 WindowListener public interface WindowListener extends ...

  5. 数据结构-List接口-LinkedList类-Set接口-HashSet类-Collection总结

    一.数据结构:4种--<需补充> 1.堆栈结构:     特点:LIFO(后进先出);栈的入口/出口都在顶端位置;压栈就是存元素/弹栈就是取元素;     代表类:Stack;     其 ...

  6. EasyUI:Easyui parser的用法

    Easyui的渲染机制是个比较坑的事情,在项目开发中,遇到需要等其渲染完成后处理一些事情,比如为联动的下拉框选中默认值,为某些表单元素自动填充值等!这就需要用到Easyui parser解析器了.官方 ...

  7. HDU 5097 Page Rank (模拟)

    题目背景是以前用来对网页进行排名的Page Rank算法,是早期Google的革命性发明. 背后的原理是矩阵和图论.这个数学模型是由Google的创始人拉里·佩奇和谢尔盖·布林发现的. 如果一个网页被 ...

  8. UI的组织形式

    UI的组织形式是树状结构: 根据层次的不同分为叶子节点和干节点. 叶子节点负责简单的信息展示. 复杂的主干复杂叶子节点的组织和整体展示. http://www.cnblogs.com/feng9exe ...

  9. Adobe登陆出现Access denied解决方法

    当我安装好Adobe Acrobat Reader DC时,想要登陆Adobe账号时被Access denied. 一般说需要梯子,然而本人亲测这种方法不行(香港主机,全局模式下). 一个简单有效的方 ...

  10. [Java] 新手快速就业需要掌握的知识点

    目的:主要是分享下日常工作中使用到的技术点,根据二八定律快速掌握使用知识点,先就业再沉淀去积累经验.(个人建议仅供参考) 背景:目前一般来说,都是前后端分离.你只需要提供接口给前端,他来处理就可以了, ...