Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Consul-template+Nginx untuk melaksanakan pengimbangan beban Konsul Jimat

Cara menggunakan Consul-template+Nginx untuk melaksanakan pengimbangan beban Konsul Jimat

王林
王林ke hadapan
2023-05-15 08:19:10796semak imbas

Seni Bina Keseluruhan

Mula-mula mari kita lihat rupa seni bina keseluruhan rangka kerja Di sini kita mempunyai tiga penyedia perkhidmatan dan tiga pemanggil perkhidmatan, yang melepasi Consul dan Nginx, dan <.> Untuk mencapai pengimbangan beban. Consul-template

Penjelasan Contoh ini adalah untuk pengimbangan beban RPC RPC ialah protokol tcp, jadi Nginx perlu mengkonfigurasi modul tcp untuk menyokong pengimbangan beban tcp.

  1. Kluster digunakan untuk pendaftaran perkhidmatan, mendaftarkan berbilang contoh perkhidmatan dan menyediakan perkhidmatan Consul kepada dunia luar. RPC

  2. digunakan untuk memantau status perkhidmatan dalam Consul-template dalam masa nyata dan menjana fail konfigurasi Consul dengan fail templatnya sendiri. Nginx

  3. Gunakan fail konfigurasi anda sendiri dan fail konfigurasi yang dijana dalam langkah kedua untuk melaksanakan pengimbangan beban. Nginx

Pemasangan Nginx

  1. Pasang versi terkini

    , pastikanNginx versi melebihi 1.9.0Nginx

  2. Versi 1.9.0 atau lebih tinggi hanya menyokong pemajuan

    Dikatakan bahawa modul ini tidak dipasang secara lalai Anda boleh menyemaknya selepas pemasangan selesai parameter, ini bermakna TCP sudah disokong. Jika tidak, susun semula dan tambah parameter untuk pemasangan. --with-streamTCP


  3. Nginx saya dipasang dalam direktori
  4. /etc/nginx

  5. Gunakan
  6. untuk memantau bila pemasangan selesai Lihat jika ia berjaya.

    nginx -t

  7. Consul-template

Artikel ini bertujuan untuk mengimbangi beban dan tidak memperkenalkan pembinaan kluster Konsul.

1 Muat turun fail versi sistem yang sepadan

2 Buka zip dan salin ke laluan

[silence@centos145 ~]$ tar xzvf consul-template_0.19.4_linux_amd64.tgz
[silence@centos145 ~]$ mv ./consul-template /usr/sbin/consul-template

3 folder baharu , dan buat tiga fail PATH

4

digunakan terutamanya untuk mengkonfigurasi parameter permulaan

, termasuk alamat pelayan

, lokasi fail templat, lokasi fail konfigurasi yang dijana, dsb. Kecuali untuk blok config.hcl dan consul-template, parameter lain adalah pilihan. consulconsul5.templateKonfigurasi blok

Alamat dan port pelayan

consul {
  auth {
    enabled  = false
    username = "test"
    password = "test"
  }


  address = "172.20.132.196:8500"
  retry {
    enabled = true
    attempts = 12
    backoff = "250ms"
    max_backoff = "1m"
  }


}
Consul6.ConsulLaluan templat konfigurasi blok dan lokasi fail yang dijana, serta apa yang perlu dilaksanakan selepas menjana Perintah fail. Di sini kita perlu memuat semula fail konfigurasi, jadi arahan tetapan ditulis sebagai

template

template {
  source = "/etc/nginx/consul-template/template.ctmpl"
  destination = "/etc/nginx/consul-template/nginx.conf"
  create_dest_dirs = true
  command = "/usr/sbin/nginx -s reload"
  command_timeout = "30s"
  error_on_missing_key = false
  perms = 0600
  backup = true
  left_delimiter  = "{{"
  right_delimiter = "}}"
  wait {
    min = "2s"
    max = "10s"
  }
}
nginx7.nginx -s reload, kerana hanya alamat pelayan dan nombor port diperlukan di sini, jadi templat fail Seperti berikut:
[root@centos145 consul-template]# cat template.ctmpl
stream {


    log_format main '$remote_addr - [$time_local] '
      '$status';


    access_log /var/log/nginx/tcp_access.log main;


    upstream cloudsocket {
 \{\{range service "ad-rpc-device-server"}}server \{\{.Address}}:\{\{.Port}};{{end}}
    }


    server {
 listen 8888;
 proxy_pass cloudsocket;
    }
}

8. Mulakantemplate.ctmpl

consul-templateconsul-template -config=./config.hclGunakan fail konfigurasi config.hcl untuk memudahkan arahan consul-template -consul-addr=172.20. 132.196:8500 -template=./template.ctmpl:./nginx.conf

9 Fail

permulaan kosong dan selepas permulaan kandungannya ialah
[root@centos145 consul-template]# cat nginx.conf
stream {


    log_format main '$remote_addr - [$time_local] '
      '$status';


    access_log /var/log/nginx/tcp_access.log main;


    upstream cloudsocket {
 server 172.20.139.77:8183;
    }


    server {
 listen 8888;
 proxy_pass cloudsocket;
    }
}

nignx.conf Pastikan perkhidmatan telah berjaya didaftarkan di Konsul, dan anda boleh melihat bahawa alamat pelayan dan port telah dikonfigurasikan.

10 Perkenalkan fail konfigurasi yang dijana oleh

ke dalam
direktori pemasangan

nginxnginx.confconsul-templateinclude /etc/nginx/consul-template/nginx.conf; Ambil perhatian bahawa fail konfigurasi yang dihasilkan tidak boleh diminum Kandungan dalam fail konfigurasi nginx itu sendiri diulang! ! !

11 Mulakan contoh perkhidmatan dan semak fail

yang dijana Anda akan mendapati bahawa senarai perkhidmatan ditambah secara dinamik dalam
dan berubah secara dinamik apabila perkhidmatan ditambah dan ditinggalkan.

[root@centos145 consul-template]# cat nginx.conf
stream {


    log_format main '$remote_addr - [$time_local] '
      '$status';


    access_log /var/log/nginx/tcp_access.log main;


    upstream cloudsocket {
 server 172.20.139.77:8183;
    }


    server {
 listen 8888;
 proxy_pass cloudsocket;
    }
}
nginx.confMulakan satu lagi, dan senarai perkhidmatan menjadi duaupstream cloudsocket{}
[root@centos145 consul-template]# cat nginx.conf
stream {


    log_format main '$remote_addr - [$time_local] '
      '$status';


    access_log /var/log/nginx/tcp_access.log main;


    upstream cloudsocket {
 server 172.20.139.77:8183;server 172.20.139.77:8184;
    }


    server {
 listen 8888;
 proxy_pass cloudsocket;
    }
}
12.

Pelanggan hanya perlu mengkonfigurasi alamat dan port

apabila membuat panggilan untuk mengkonfigurasi alamat perkhidmatan dan port,

akan memajukannya secara automatik. thrift

Atas ialah kandungan terperinci Cara menggunakan Consul-template+Nginx untuk melaksanakan pengimbangan beban Konsul Jimat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam