香港vps服务器的MySQL配置Keepalived读写分离
云服务器
香港vps服务器的MySQL配置Keepalived读写分离
2026-01-21 09:49
香港vps服务器的MySQL配置Keepalived读写分离: 1背景 在数据库一主多从架构中,若所有查询的流量都切入主节点,会造成服务器拥塞,因此需要将业务一致性要求不是特别高的应用的查询流量分散到从库,以实现负载均衡 keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouterRedundancyProtocol,即虚拟路由冗余协议 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了 keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的 LVS负载均衡 lvs是四层负载均衡,也就是说建立在OSI模型的第四层――传输层之上 传输层上有TCP/UDP,lvs支持TCP/UDP的负载均衡 因为LVS是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的 lvs的转发可以通过修改IP地址实现(NAT模式) lvs的转发还可以通过修改直接路由实现(DR模式) 因LVS缺乏后端状态检测,于是配合Keepalived使用会拥有不错的效果 2架构 LVS+Keepalived架构 DBip备注 Master10.243.95.3keepalivedMaster Slave110.243.95.4keepalivedBackup Slave210.243.95.5 10.243.95.101读VIP 3搭建 1)安装依赖包 yum-yinstallnet-snmp unzip-ukeepalived_pack.zip cdkeepalived_pack/rhel6/; rpm-ivhipvsadm-1.26-2.el6.x86_64.rpm rpm-ivhkeepalived-1.2.7-3.el6.x86_64.rpm 2)修改配置文件 两个节点的配置大体相似,仅需修改优先级和角色 global_defs{ notification_email{ #user@example.com } notification_email_frommail@example.org #smtp_server192.168.200.1 smtp_connect_timeout30 router_idLVS_DEVEL } vrrp_scriptchk_mha{ script"/root/mha/scripts/check_manager.sh/root/mha" interval5 weight-40 fall3 rise1 } vrrp_instanceVI_1{ #修改1.主节点MASTER stateBACKUP interfaceeth0 virtual_router_id200 #修改2.主节点优先级需大于从节点 priority90 advert_int1 authentication{ auth_typePASS auth_pass1111 } #VIP virtual_ipaddress{ 10.243.95.101 } notify_master"/root/mha/scripts/write_keepalived_state.sh/root/mha/logMASTER" notify_backup"/root/mha/scripts/write_keepalived_state.sh/root/mha/logBACKUP" } virtual_serverfwmark2{ delay_loop10 lb_algorr lb_kindDR #persistence_timeout2 protocolTCP real_server10.243.95.53306{ weight3 TCP_CHECK{ connect_timeout10 nb_get_retry3 delay_before_retry3 connect_port3306 } } real_server10.243.95.43306{ weight3 TCP_CHECK{ connect_timeout10 nb_get_retry3 delay_before_retry3 connect_port3306 } } real_server10.243.95.33306{ weight3 TCP_CHECK{ connect_timeout10 nb_get_retry3 delay_before_retry3 connect_port3306 } } } 3)绑定子接口VIP 应用于三个数据库节点 ipaddradd$VIP/32devlo 4)设置iptables规则 因LVS-keepalived需同时部署在RS服务器,存在一些问题 现象分析:请求经过keepalivedMASTER节点后,会根据负载均衡策略分发到配置文件中的RS服务器,此时会包含BACKUP节点,若分发至BACKUP节点会发生二次轮询分发给MASTER节点,造成循环 解决方案:通过设置fwmark参数,当数据包发送给VIP且mac地址不属于任何LVS节点会通过iptables进行标记,带标记的包才会进入LVS进行负载均衡处理 #在master上执行,MAC地址为数据库SLave1的MAC iptables-tmangle-IPREROUTING-d10.243.95.101-ptcp-mtcp--dport3306-mmac!--mac-sourceFA:16:3E:1C:EB:DC-jMARK--set-mark0x2 #在Slave1上执行,MAC地址为数据库Master的MAC iptables-tmangle-IPREROUTING-d10.243.95.101-ptcp-mtcp--dport3306-mmac!--mac-sourceFA:16:3E:30:DF:12-jMARK--set-mark0x2 5)添加服务器内核参数 net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.default.send_redirects=0 net.ipv4.conf.eth0.send_redirects=0 net.ipv4.conf.lo.arp_ignore=1 net.ipv4.conf.lo.arp_announce=2 net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 修改后需重载配置sysctl-p 6)启动Keepalived服务 MySQL配置Keepalived读写分离 一诺网络香港免备案专区,提供「香港增强VPS」和「香港特惠VPS」两种类型的高可用弹性计算服务,搭载新一代英特尔®至强®铂金处理器,接入CN2低延时高速回国带宽线路,网络访问顺滑、流畅。机房网络架构采用了BGP协议的解决方案可提供多线路互联融合网络,使得不同网络运营商线路的用户都能通过最佳路由实现快速访问。香港云VPS低至29元/月,购买链接:https://www.enuoidc.com/vps.html?typeid=2