• <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年8月>
            303112345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789


            專注即時(shí)通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開(kāi)頭給出了原文出處,如有再轉(zhuǎn),敬請(qǐng)保留相關(guān)信息,這是大家對(duì)原創(chuàng)作者勞動(dòng)成果的自覺(jué)尊重!!如為您帶來(lái)不便,請(qǐng)于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊(cè)

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 215465
            • 排名 - 118

            最新評(píng)論

            閱讀排行榜

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

            redis是非常實(shí)用的優(yōu)秀nosql開(kāi)源產(chǎn)品,在高并發(fā)的服務(wù)器環(huán)境中,可以作為緩存和隊(duì)列使用.美中不足的是,到現(xiàn)在為止,redis并沒(méi)有推出自己的集群方案,對(duì)一個(gè)完善的生產(chǎn)環(huán)境,負(fù)載均衡,高可用,主從備份都是必不可少的選項(xiàng),redis提供了穩(wěn)定·的主從備份功能,提供了數(shù)種持久化策略,在主從備份上也提供了增量備份的功能,現(xiàn)在通過(guò)sentinel提供主從熱備的功能,可惜功能上并不完善,達(dá)不到生產(chǎn)環(huán)境的要求。

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

            redis和keepalived的安裝非常簡(jiǎn)單,網(wǎng)上大把的文章可以參考,這里就不再贅述,這里按照redis雙機(jī)主從熱備的場(chǎng)景,講需要注意的幾點(diǎn),網(wǎng)上的很多文章沒(méi)有講清楚。

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

            2,keepalived通過(guò)VIP虛擬ip的綁定轉(zhuǎn)換來(lái)打造熱備支持,在轉(zhuǎn)化主從身份的過(guò)程中,還支持腳本的調(diào)用,根據(jù)不同的腳本,keepalived可以用于不同的場(chǎng)景要求,可謂功能強(qiáng)

            3,centos環(huán)境中keepalived的使用需要安裝ipvsadm支持。

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

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

              /etc/keepalived/keepalived.conf為kaapalived的默認(rèn)配置文件所在位置

              /var/log/messages中記載了keepalived的啟動(dòng),vip轉(zhuǎn)化等log信息,至于角色轉(zhuǎn)化過(guò)程中的腳本執(zhí)行日志,由各個(gè)腳本自己指定

            下面貼出主從的keepalived.conf設(shè)置,在centos7下測(cè)試通過(guò)

            主機(jī)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
                    }
                }
            }

            從機(jī)的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
                    }
                }
            }

            請(qǐng)大家注意幾點(diǎn):

            1,同一組里的各個(gè)機(jī)器配置文件中router_id不能相同,很多文章講這里可以相同是錯(cuò)誤的,這個(gè)是組中身份的標(biāo)識(shí)。同一個(gè)組里的virtual_router_id必須相同,這是組標(biāo)識(shí)。

            2,priority是設(shè)置優(yōu)先級(jí)別的,主服務(wù)器的優(yōu)先級(jí)必須高于從服務(wù)器,即這個(gè)數(shù)字要大些。

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

            4,real_server中的weight設(shè)置的是負(fù)載均衡優(yōu)先級(jí),如果主從熱備的場(chǎng)景下,這里可以設(shè)置為相同。

             

            keeaplived可以在主從都運(yùn)行良好的情況下檢測(cè)主從狀態(tài),當(dāng)主服務(wù)器down掉,或者進(jìn)程意外終止時(shí),先將VIP綁定到從服務(wù)器上,然后通過(guò)指定的腳本來(lái)提升從服務(wù)器的應(yīng)用層面的角色定位,在redis中就是運(yùn)行slave no one,當(dāng)主服務(wù)器恢復(fù)服務(wù)后,將VIP恢復(fù)綁定至主服務(wù)器,然后調(diào)用腳本同步主服務(wù)器宕機(jī)時(shí)間中從服務(wù)器儲(chǔ)存的數(shù)據(jù),然后將主服務(wù)器redis進(jìn)程提升為主redis,從服務(wù)器redis降格為備份進(jìn)程。這些功能的實(shí)現(xiàn)都是通過(guò)主動(dòng)調(diào)用notify_master腳本實(shí)現(xiàn),這個(gè)腳本當(dāng)然可以配置為其他的功能,所以,這就可以使keepalived在很多場(chǎng)合發(fā)揮作用。

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

            posted on 2017-07-10 11:32 思月行云 閱讀(895) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Redis\Mongo
            2022年国产精品久久久久| 免费无码国产欧美久久18| 午夜精品久久久内射近拍高清| 久久人人爽人人爽人人AV东京热| 久久久精品久久久久久| 久久久久久综合一区中文字幕 | 久久强奷乱码老熟女网站| 久久se精品一区精品二区| 国产产无码乱码精品久久鸭| 久久久久久国产精品无码超碰| 日韩AV无码久久一区二区| 久久WWW免费人成一看片| 久久影视综合亚洲| 久久99热这里只有精品66| 伊人精品久久久久7777| 国产午夜精品理论片久久| 亚洲综合精品香蕉久久网97| 色偷偷888欧美精品久久久| 久久精品亚洲福利| 欧美久久一区二区三区| 国产美女亚洲精品久久久综合 | 国产ww久久久久久久久久| 99久久国产免费福利| 亚洲欧美国产日韩综合久久| 日韩人妻无码精品久久久不卡| www.久久99| 亚洲精品国产自在久久| 久久久亚洲欧洲日产国码aⅴ| 国产精品久久久久久久| 久久精品人妻一区二区三区| 亚洲欧美一区二区三区久久| 久久av无码专区亚洲av桃花岛| 国产成人无码精品久久久久免费| 亚洲精品无码久久久| 久久精品国产亚洲麻豆| 青青草国产97免久久费观看| 久久99久久99精品免视看动漫| 久久国产视屏| 国产亚洲欧美成人久久片| 欧美性大战久久久久久| 91精品国产综合久久婷婷|