欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

MySQL配置Keepalived讀寫分離

1 背景

在數據庫一主多從架構中,若所有查詢的流量都切入主節點,會造成服務器擁塞,因此需要將業務一致性要求不是特別高的應用的查詢流量分散到從庫,以實現負載均衡

?keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協議

虛擬路由冗余協議,可以認為是實現路由器高可用的協議,即將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架構

    DB ip 備注
    Master 10.243.95.3 keepalived Master
    Slave1 10.243.95.4 keepalived Backup
    Slave2 10.243.95.5 ?
    ? 10.243.95.101 讀VIP

    3 搭建

    1)安裝依賴包

  • yum -y install net-snmp
    unzip -u keepalived_pack.zip
    cd keepalived_pack/rhel6/;
    rpm -ivh ipvsadm-1.26-2.el6.x86_64.rpm
    rpm -ivh keepalived-1.2.7-3.el6.x86_64.rpm

    2)修改配置文件

    兩個節點的配置大體相似,僅需修改優先級和角色

  • global_defs {
    ? ?notification_email {
    ? ? ? #user@example.com
    ? ?}
    ? ?notification_email_from mail@example.org
    ? ?#smtp_server 192.168.200.1
    ? ?smtp_connect_timeout 30
    ? ?router_id LVS_DEVEL
    }
    vrrp_script chk_mha {
    ? ?script "/root/mha/scripts/check_manager.sh /root/mha"
    ? ?interval 5
    ? ?weight -40
    ? ?fall ? 3
    ? ?rise ? 1
    ? ? ?}
    vrrp_instance VI_1 {
    ? ? #修改1.主節點MASTER
    ? ? state BACKUP
    ? ? interface eth0
    ? ? virtual_router_id 200
    ? ? #修改2.主節點優先級需大于從節點
    ? ? priority 90
    ? ? advert_int 1
    ? ? authentication {
    ? ? ? ? auth_type PASS
    ? ? ? ? auth_pass 1111
    ? ? }
    ? #VIP
    ? ? virtual_ipaddress {
    ? ? ? ?10.243.95.101
    ? ? }
    ? ? notify_master "/root/mha/scripts/write_keepalived_state.sh /root/mha/log MASTER"
    ? ? notify_backup "/root/mha/scripts/write_keepalived_state.sh /root/mha/log BACKUP"
    }

    virtual_server fwmark 2 {
    ? ? ? ? delay_loop 10
    ? ? ? ? lb_algo rr
    ? ? ? ? lb_kind DR
    # ? ?persistence_timeout 2
    ? ? ? ? protocol TCP
    ? ? ? ? real_server 10.243.95.5 3306 {
    ? ? ? ? ? ? ? ? weight 3
    ? ? ? ? ? ? ? ? TCP_CHECK {
    ? ? ? ? ? ? ? ? ? ? ? ? connect_timeout 10
    ? ? ? ? ? ? ? ? ? ? ? ? nb_get_retry 3
    ? ? ? ? ? ? ? ? ? ? delay_before_retry 3
    ? ? ? ? ? ? ? ? ? ? ? ? connect_port 3306
    ? ? ? ? ? ? ? ? }
    ? ? ? ? }
    ? ? ? ? real_server 10.243.95.4 3306 {
    ? ? ? ? ? ? ? ? weight 3
    ? ? ? ? ? ? ? ? TCP_CHECK {
    ? ? ? ? ? ? ? ? ? ? ? ? connect_timeout 10
    ? ? ? ? ? ? ? ? ? ? ? ? nb_get_retry 3
    ? ? ? ? ? ? ? ? ? ? delay_before_retry 3
    ? ? ? ? ? ? ? ? ? ? ? ? connect_port 3306
    ? ? ? ? ? ? ? ? }
    ? ? ? ? }
    ? ? ? ? real_server 10.243.95.3 3306 {
    ? ? ? ? ? ? ? ? weight 3
    ? ? ? ? ? ? ? ? TCP_CHECK {
    ? ? ? ? ? ? ? ? ? ? ? ? connect_timeout 10
    ? ? ? ? ? ? ? ? ? ? ? ? nb_get_retry 3
    ? ? ? ? ? ? ? ? ? ? delay_before_retry 3
    ? ? ? ? ? ? ? ? ? ? ? ? connect_port 3306
    ? ? ? ? ? ? ? ? }
    ? ? ? ? }
    ? ? ?}

    3)綁定子接口VIP

    應用于三個數據庫節點

  • ip addr add $VIP/32 dev lo

    4)設置iptables規則

    因LVS-keepalived需同時部署在RS服務器,存在一些問題

    現象分析:請求經過keepalived MASTER節點后,會根據負載均衡策略分發到配置文件中的RS服務器,此時會包含BACKUP節點,若分發至BACKUP節點會發生二次輪詢分發給MASTER節點,造成循環

    解決方案:通過設置fwmark參數,當數據包發送給VIP且mac地址不屬于任何LVS節點會通過iptables進行標記,帶標記的包才會進入LVS進行負載均衡處理

  • #在master上執行,MAC地址為數據庫SLave1的MAC
    iptables -t mangle -I PREROUTING -d 10.243.95.101 -p tcp -m tcp --dport 3306 -m mac ! --mac-source FA:16:3E:1C:EB:DC -j MARK --set-mark 0x2
    #在Slave1上執行,MAC地址為數據庫Master的MAC
    iptables -t mangle -I PREROUTING -d 10.243.95.101 -p tcp -m tcp --dport 3306 -m mac ! --mac-source FA:16:3E:30:DF:12 -j MARK --set-mark 0x2

    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讀寫分離

文章鏈接: http://www.qzkangyuan.com/9826.html

文章標題:MySQL配置Keepalived讀寫分離

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程投稿分享運維技術

MySQL之高可用組件MHA

2022-9-8 12:56:31

建站教程投稿分享

個人網站Nginx防盜鏈設置

2022-9-9 15:05:30

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 彭泽县| 吉安市| 延安市| 布拖县| 信阳市| 株洲市| 北流市| 盖州市| 宾阳县| 柯坪县| 搜索| 大竹县| 集贤县| 海兴县| 广南县| 浙江省| 托克托县| 沁阳市| 禄劝| 会昌县| 徐水县| 西峡县| 黔西县| 蓝山县| 津南区| 莱芜市| 宁强县| 玉树县| 鹤岗市| 腾冲县| 祥云县| 民县| 甘孜| 丹巴县| 托里县| 朔州市| 泸州市| 搜索| 惠来县| 银川市| 葫芦岛市|