• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年7月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345


            專注即時通訊及網游服務端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標準模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉載,并在文章開頭給出了原文出處,如有再轉,敬請保留相關信息,這是大家對原創作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 217494
            • 排名 - 118

            最新評論

            閱讀排行榜

            https://my.oschina.net/ydsakyclguozi/blog/515050

            redis是非常實用的優秀nosql開源產品,在高并發的服務器環境中,可以作為緩存和隊列使用.美中不足的是,到現在為止,redis并沒有推出自己的集群方案,對一個完善的生產環境,負載均衡,高可用,主從備份都是必不可少的選項,redis提供了穩定·的主從備份功能,提供了數種持久化策略,在主從備份上也提供了增量備份的功能,現在通過sentinel提供主從熱備的功能,可惜功能上并不完善,達不到生產環境的要求。

            現在我們選定keepalived作為redis的高可用支持,keepalived不僅可以比較完善的支持redis的高可用,而且作為lvs負載均衡的配套產品,和lvs天然具有較好的配合,對于搭建redis集群有較好的擴展性。

            redis和keepalived的安裝非常簡單,網上大把的文章可以參考,這里就不再贅述,這里按照redis雙機主從熱備的場景,講需要注意的幾點,網上的很多文章沒有講清楚。

            1,lvs和keepalived的關系,lvs起的是負載均衡功能,而keepalived則是高可用(熱備)的支持,keeplaived可以單獨使用。

            2,keepalived通過VIP虛擬ip的綁定轉換來打造熱備支持,在轉化主從身份的過程中,還支持腳本的調用,根據不同的腳本,keepalived可以用于不同的場景要求,可謂功能強

            3,centos環境中keepalived的使用需要安裝ipvsadm支持。

            4,如果負載均衡使用的是nat策略,那么可以不設置linux的arp_ignore(arp組播忽略)選項。

            5,/etc/sysconfig/keeaplived 為keepalived的啟動腳本,這個可以不用修改,如果keepalived的啟動配置不在/etc/keepalived/keepalived.conf下則需要在這里指定配置文件的位置

              /etc/keepalived/keepalived.conf為kaapalived的默認配置文件所在位置

              /var/log/messages中記載了keepalived的啟動,vip轉化等log信息,至于角色轉化過程中的腳本執行日志,由各個腳本自己指定

            下面貼出主從的keepalived.conf設置,在centos7下測試通過

            主機keepalived.conf

            ! Configuration File for keepalived

            global_defs {
               notification_email {
                 acassen@firewall.loc
                 failover@firewall.loc
                 sysadmin@firewall.loc
               }
               notification_email_from Alexandre.Cassen@firewall.loc
               smtp_server 128.0.0.1
               smtp_connect_timeout 30
               router_id LVS_MASTER
            }

            vrrp_script chk_redis 

                 script "/usr/local/redis/sh/redis_check.sh 127.0.0.1 6379" 
                 interval 2 
                 timeout 2
                 fall 3
            }

            vrrp_instance VI_1 {
                state MASTER
                interface eno16777736
                virtual_router_id 60
                priority 100
                advert_int 3
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }
                virtual_ipaddress {
                    192.168.72.115
                   # 192.168.200.17
                   # 192.168.200.18
                }
                 track_script {
                    chk_redis
                }
                notify_master "/usr/local/redis/sh/redis_master_master.sh 127.0.0.1 192.168.72.128 6379"
                notify_backup "/usr/local/redis/sh/redis_master_slave.sh 127.0.0.1 192.168.72.128 6379"
                notify_fault "/usr/local/redis/sh/redis_fault.sh" 
            }

            virtual_server 192.168.72.115 6379 {
                delay_loop 6
                lb_algo rr
                lb_kind NAT
                nat_mask 255.255.255.0
                persistence_timeout 50
                protocol TCP
                sorry_server 127.0.0.1 80
                real_server 192.168.72.11 6379 {
                    weight 1
                TCP_CHECK {
                      connect_timeout 3
                      nb_get_retry 3
                      delay_before_retry 3
                      connect_port 6379
                    }
                }

               real_server 192.168.72.128 6379 {
                    weight 1
                    TCP_CHECK {
                      connect_timeout 3
                      nb_get_retry 3
                      delay_before_retry 3
                      connect_port 6379
                    }
                }
            }

            從機的keepalived.conf配置

            ! Configuration File for keepalived

            global_defs {
               notification_email {
                 acassen@firewall.loc
                 failover@firewall.loc
                 sysadmin@firewall.loc
               }
               notification_email_from Alexandre.Cassen@firewall.loc
               smtp_server 128.0.0.1
               smtp_connect_timeout 30
               router_id LVS_BACKUP
            }

            vrrp_script chk_redis 

                 script "/usr/local/redis/sh/redis_check.sh 127.0.0.1 6379" 
                 interval 2 
                 timeout 2
                 fall 3
            }

            vrrp_instance VI_1 {
                state BACKUP
                interface eno16777736
                virtual_router_id 60
                priority 99
                advert_int 3
                nopreempt
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }
                virtual_ipaddress {
                    192.168.72.115
                   # 192.168.200.17
                   # 192.168.200.18
                }
                 track_script {
                    chk_redis
                }
                notify_master "/usr/local/redis/sh/redis_backup_master.sh 127.0.0.1 192.168.72.11 6379"
                notify_backup "/usr/local/redis/sh/redis_backup_slave.sh 127.0.0.1 192.168.72.11 6379"
                notify_fault "/usr/local/redis/sh/redis_fault.sh" 
            }

            virtual_server 192.168.72.115 6379 {
                delay_loop 6
                lb_algo rr
                lb_kind NAT
                nat_mask 255.255.255.0
                persistence_timeout 50
                protocol TCP
                sorry_server 127.0.0.1 80
                real_server 192.168.72.11 6379 {
                    weight 1
                TCP_CHECK {
                      connect_timeout 3
                      nb_get_retry 3
                      delay_before_retry 3
                      connect_port 6379
                    }
                }

               real_server 192.168.72.128 6379 {
                    weight 1
                    TCP_CHECK {
                      connect_timeout 3
                      nb_get_retry 3
                      delay_before_retry 3
                      connect_port 6379
                    }
                }
            }

            請大家注意幾點:

            1,同一組里的各個機器配置文件中router_id不能相同,很多文章講這里可以相同是錯誤的,這個是組中身份的標識。同一個組里的virtual_router_id必須相同,這是組標識。

            2,priority是設置優先級別的,主服務器的優先級必須高于從服務器,即這個數字要大些。

            3,interface后跟的是網卡名,在centos7中可不叫eth0,最好在配置之前使用ifconfig查看下你的網卡名稱。

            4,real_server中的weight設置的是負載均衡優先級,如果主從熱備的場景下,這里可以設置為相同。

             

            keeaplived可以在主從都運行良好的情況下檢測主從狀態,當主服務器down掉,或者進程意外終止時,先將VIP綁定到從服務器上,然后通過指定的腳本來提升從服務器的應用層面的角色定位,在redis中就是運行slave no one,當主服務器恢復服務后,將VIP恢復綁定至主服務器,然后調用腳本同步主服務器宕機時間中從服務器儲存的數據,然后將主服務器redis進程提升為主redis,從服務器redis降格為備份進程。這些功能的實現都是通過主動調用notify_master腳本實現,這個腳本當然可以配置為其他的功能,所以,這就可以使keepalived在很多場合發揮作用。

            交叉參考:
            http://www.cnblogs.com/lulu/archive/2013/04/14/3021261.html

            posted on 2017-07-10 11:32 思月行云 閱讀(910) 評論(0)  編輯 收藏 引用 所屬分類: Redis\Mongo
            久久99精品久久只有精品| 狠狠色丁香久久婷婷综合_中 | 亚洲午夜无码久久久久| 无码久久精品国产亚洲Av影片| 久久人爽人人爽人人片AV| 久久国产精品-久久精品| 国产精品嫩草影院久久| 久久狠狠爱亚洲综合影院| 久久国产乱子精品免费女| 偷偷做久久久久网站| 久久精品免费观看| 国产毛片欧美毛片久久久| 久久久久亚洲AV成人网人人网站 | 久久久久97国产精华液好用吗| 中文字幕亚洲综合久久菠萝蜜| 久久精品国产亚洲av麻豆小说 | 国产精品美女久久久免费| 久久人妻无码中文字幕| 精品熟女少妇aⅴ免费久久| 亚洲AV日韩AV天堂久久| 狠狠色丁香久久婷婷综合_中 | 亚洲国产成人久久综合碰碰动漫3d| 亚洲午夜精品久久久久久浪潮| 狠狠色婷婷综合天天久久丁香 | 一本大道加勒比久久综合| 精品国产乱码久久久久久人妻| 久久久久亚洲AV成人网人人网站| 亚洲AV无一区二区三区久久| 国产精品乱码久久久久久软件| 国产精品成人久久久久三级午夜电影 | 久久国产午夜精品一区二区三区| 午夜人妻久久久久久久久| 久久综合亚洲色HEZYO社区| 久久露脸国产精品| 久久久久噜噜噜亚洲熟女综合| 久久99精品久久久久久秒播| 久久精品国产69国产精品亚洲| 久久99国产综合精品| 久久久久久久综合日本亚洲| 国产精品久久久久9999| 国产精品美女久久久|