<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      miketwais

      work up

      PostgreSQL high availability 高可用集群--架構&搭建

      近期研究關系型數據庫postgreSQL 的高可用集群,經調研決定使用下面技術棧:

      • VIP
      • keepalived
      • haproxy
      • patroni
      • etcd
      • postgreSQL 15

      整體架構圖如下:

      主機配置情況如下:

       關于patroni+etcd+postgreSQL 15的安裝,可以借鑒網絡上的安裝步驟,相差不多。這里推薦GitHub上一個使用ansible封裝的安裝腳本,選擇type A就行。

      下面介紹keepalive的安裝和配置:

      apt  install keepalived.

      進入/etc/keepalived/創建keepalived.conf

      master的配置如下:

      global_defs {
          script_user root
          router_id LVS_DEVEL
          vrrp_skip_check_adv_addr
          vrrp_garp_interval 0
          vrrp_gna_interval 0
      }
      
      vrrp_script chk_http_port {
          script "killall -0 haproxy"   # 檢測當前機器的服務是否故障,如果故障則關閉 keepalived
          interval 2
          weight -5
          fall 2
          rise 1
      }
      
      vrrp_instance VI_1 {
          state MASTER    # 主備配置不一致
          interface ens160
          virtual_router_id 51
          priority 100
          advert_int 1
          nopreempt
          authentication {
              auth_type PASS
              auth_pass postgres   # 主備該配置必須一樣
          }
          virtual_ipaddress {
              129.184.13.161/24 dev ens160
          }
          track_script {
              chk_http_port   # 在 vrrp_script 定義的名字
          }
          notify_master ""  # 當這臺機器成為 Master 時發送通知
          notify_backup ""
          notify_fault  ""
      }
      virtual_server 129.184.13.161 5000 {
          lb_algo rr
          #lb_kind DR
          lb_kind NAT
          protocol TCP
          persistence_timeout 50
          delay_loop 10
          real_server 129.184.13.158 5000 {
              weight 100
              TCP_CHECK {
                connect_timeout 5
                connect_port 5000
              }
          }
          real_server 129.184.13.159 5000 {
              weight 90
              TCP_CHECK {
                connect_timeout 5
                connect_port 5000
              }
          }
          real_server 129.184.13.160 5000 {
              weight 80
              TCP_CHECK {
                connect_timeout 5
                connect_port 5000
              }
          }
      }
      virtual_server 129.184.13.161 5001 {
          #lvs_sched rr
          #lvs_method DR
          lb_algo rr
          lb_kind NAT
          protocol TCP
          persistence_timeout 50
          delay_loop 10
          real_server 129.184.13.158 5001 {
              weight 80
              TCP_CHECK {
                connect_timeout 5
                connect_port 5001
              }
          }
          real_server 129.184.13.159 5001 {
              weight 90
              TCP_CHECK {
                connect_timeout 5
                connect_port 5001
              }
          }
          real_server 129.184.13.160 5001 {
              weight 100
              TCP_CHECK {
                connect_timeout 5
                connect_port 5001
              }
          }
      }
      View Code

      replicate節點配置:

      global_defs {
          script_user root
          router_id LVS_DEVEL
          vrrp_skip_check_adv_addr
          vrrp_garp_interval 0
          vrrp_gna_interval 0
      }
      
      vrrp_script chk_http_port {
          script "/usr/bin/killall -0 haproxy"   # 檢測當前機器的服務是否故障,如果故障則關閉 keepalived
          interval 2
          weight -5
          fall 2
          rise 1
      }
      
      vrrp_instance VI_1 {
          state BACKUP    # 主備配置不一致
          interface ens160
          virtual_router_id 51
          priority 95   #low then master
          advert_int 1
          nopreempt
          authentication {
              auth_type PASS
              auth_pass postgres   # 主備該配置必須一樣
          }
          virtual_ipaddress {
              129.184.13.161/24 dev ens160
          }
          track_script {
              chk_http_port   # 在 vrrp_script 定義的名字
          }
          notify_master ""  # 當這臺機器成為 Master 時發送通知
          notify_backup ""
          notify_fault  ""
      }
      virtual_server 129.184.13.161 5000 {
          #lvs_sched rr
          #lvs_method DR
          #lb_algo rr
          #lb_kind NAT
          protocol TCP
          persistence_timeout 50
          delay_loop 10
          real_server 129.184.13.158 5000 {
              weight 100
              TCP_CHECK {
                connect_timeout 5
                connect_port 5000
              }
          }
          real_server 129.184.13.159 5000 {
              weight 90
              TCP_CHECK {
                connect_timeout 5
                connect_port 5000
              }
          }
          real_server 129.184.13.160 5000 {
              weight 80
              TCP_CHECK {
                connect_timeout 5
                connect_port 5000
              }
          }
      }
      virtual_server 129.184.13.161 5001 {
          #lvs_sched rr
          #lvs_method DR
          #lb_algo rr
          #lb_kind NAT
          protocol TCP
          persistence_timeout 50
          delay_loop 10
          real_server 129.184.13.158 5001 {
              weight 80
              TCP_CHECK {
                connect_timeout 5
                connect_port 5001
              }
          }
          real_server 129.184.13.159 5001 {
              weight 90
              TCP_CHECK {
                connect_timeout 5
                connect_port 5001
              }
          }
          real_server 129.184.13.160 5001 {
              weight 100
              TCP_CHECK {
                connect_timeout 5
                connect_port 5001
              }
          }
      }
      View Code

      接下來可以使用虛擬IP訪問,

      5000端口用于寫/讀

      5001主要用于讀取數據(讀寫分離)

      ----------------高可用性驗證----------------------

      1.查看node狀況

      2.手動觸發主從切換

       3.手動停止主節點服務,自動選擇主節點

       4.postgres服務故障,自動啟動

       5.從master節點寫入數據,數據自動同步到從節點

       6.設置虛擬IP,從虛擬IP訪問數據庫

       7.keepalived 確保haproxy負載的可用性(停止主節點haproxy,haproxy5000,5001仍然可用)

       以上驗證了postgresSQL的高可用性,記錄以供有需要的朋友使用。

       

      posted @ 2023-08-09 10:51  MasonZhang  閱讀(5442)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费人妻av无码专区| 欧洲亚洲成av人片天堂网| 综合色一色综合久久网| 熟女视频一区二区三区嫩草| 亚洲人成网线在线播放VA| 无遮无挡爽爽免费视频| 中文成人无字幕乱码精品区| 国产一区二区三区韩国| 国产自拍一区二区三区在线| 亚洲av无码精品色午夜| 国产成人午夜在线视频极速观看 | 精品偷拍一区二区三区| 激情综合网激情综合| 熟妇的味道hd中文字幕| 辽阳县| 中国CHINA体内裑精亚洲日本| 亚洲精品日韩在线观看| 亚洲毛片不卡AV在线播放一区 | 爱啪啪av导航| 免费视频一区二区三区亚洲激情 | 激情综合五月丁香亚洲| 广宗县| 福利一区二区在线观看| 国产精品亚洲综合色区丝瓜 | 宅男噜噜噜66在线观看| 国产一级av在线播放| 午夜成人性爽爽免费视频| 亚洲中文精品一区二区| 国产免费视频一区二区| 大战丰满无码人妻50p| 色噜噜一区二区三区| 欧美日韩不卡视频合集| 国产午夜福利小视频在线| 国产成人高清亚洲综合| 亚洲熟妇自偷自拍另欧美| 亚洲av色香蕉一区二区| 特黄少妇60分钟在线观看播放 | 亚洲综合黄色的在线观看| 韩国无码AV片午夜福利| 中文字幕亚洲一区二区三区 | 久久香蕉国产线看观看亚洲片|