Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan PHP: menggunakan Konsul dan Fabio untuk mencapai ketersediaan tinggi dan penemuan perkhidmatan

Pembangunan PHP: menggunakan Konsul dan Fabio untuk mencapai ketersediaan tinggi dan penemuan perkhidmatan

王林
王林asal
2023-06-15 15:27:34976semak imbas

Memandangkan aplikasi moden terus berkembang, pembangun semakin perlu memberi perhatian kepada penemuan perkhidmatan dan isu ketersediaan tinggi. Penemuan perkhidmatan merujuk kepada keupayaan untuk menemui perkhidmatan lain dalam sistem teragih untuk menyelaraskan kerja mereka. Ketersediaan tinggi merujuk kepada keupayaan sistem untuk masih beroperasi secara normal apabila menghadapi kegagalan.

Consul dan Fabio ialah dua alatan sumber terbuka yang digunakan secara meluas yang boleh membantu pembangun mencapai fungsi di atas. Kedua-dua alatan menggunakan seni bina perkhidmatan mikro moden untuk mengurus dan memantau keseluruhan sistem dengan mudah.

Consul ialah alat penemuan perkhidmatan sumber terbuka yang menyediakan penemuan perkhidmatan, pemeriksaan kesihatan, storan nilai kunci teragih dan fungsi lain. Konsul menyediakan penemuan perkhidmatan dengan menyediakan DNS atau API HTTP, membenarkan pembangun mengakses perkhidmatan melalui antara muka bersatu.

Fabio ialah proksi terbalik HTTP dan TCP yang ringan yang digunakan untuk menghalakan trafik dalam seni bina perkhidmatan mikro. Fabio secara automatik boleh menanyakan Konsul untuk maklumat status kesihatan perkhidmatan untuk memajukan trafik ke nod perkhidmatan yang sihat.

Di bawah, kami akan menyelami cara melaksanakan ketersediaan tinggi dan penemuan perkhidmatan menggunakan Consul dan Fabio.

Memasang Konsul

Kami perlu memuat turun versi terkini Konsul dari tapak web rasminya dan nyahzipnya pada pelayan kami. Anda boleh memuat turun versi yang sesuai untuk sistem pengendalian anda daripada [https://www.consul.io/downloads.html](https://www.consul.io/downloads.html).

Selepas menyahzip, kami boleh mengalihkan fail boleh laku ke direktori /usr/bin:

sudo mv ./consul /usr/bin

Untuk menjadikan Consul berjalan secara automatik apabila sistem bermula, kami perlu mencipta perkhidmatan systemd. Buat fail bernama /etc/systemd/system di bawah direktori consul.service dan salin kandungan berikut ke dalamnya:

[Unit]
Description=Consul Service Discovery

[Service]
ExecStart=/usr/bin/consul agent -server -bootstrap-expect=3 -data-dir=/var/consul -config-dir=/etc/consul.d -bind="0.0.0.0" -client="0.0.0.0"
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Dalam fail konfigurasi di atas, kami meminta Konsul untuk menjalankan sebagai pelayan semasa permulaan dan mengharapkan Terdapat sekurang-kurangnya tiga nod. Selain itu, kami juga menentukan direktori kerja dan direktori konfigurasi Konsul dan mengikatnya pada semua alamat IP tempatan.

Kini, kami boleh memulakan dan mengaktifkan perkhidmatan Konsul:

sudo systemctl start consul
sudo systemctl enable consul

Pada ketika ini, kami telah menyelesaikan pemasangan dan konfigurasi Konsul.

Memasang Fabio

Kami juga perlu memuat turun versi terkini Fabio daripada tapak web rasmi Fabio dan mengekstraknya ke pelayan. Anda boleh memuat turun versi untuk sistem pengendalian anda daripada [https://fabiolb.net](https://fabiolb.net).

Selepas menyahzip, kami boleh mengalihkan fail boleh laku ke direktori /usr/bin:

sudo mv ./fabio /usr/bin

Kemudian, kami perlu mencipta perkhidmatan sistem untuk mengurus Fabio. Cipta fail bernama /etc/systemd/system dalam direktori fabio.service dan salin kandungan berikut ke dalamnya:

[Unit]
Description=Fabio Service Proxy

[Service]
ExecStart=/usr/bin/fabio
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Dalam fail konfigurasi di atas, kami memerlukan Fabio untuk dijalankan sebagai perkhidmatan dan menentukan pilihan Berkaitannya untuk mengurus nod perkhidmatan. Fabio secara automatik akan bertanya kepada Konsul untuk mencari perkhidmatan dan memajukan trafik ke nod perkhidmatan yang sihat.

Kini kita boleh memulakan dan mengaktifkan perkhidmatan Fabio:

sudo systemctl start fabio
sudo systemctl enable fabio

Jika anda ingin menggunakan ciri pemeriksaan kesihatan, pastikan pemeriksaan kesihatan perkhidmatan dikonfigurasikan dengan betul dalam Konsul. Apabila perkhidmatan gagal, Konsul boleh melaporkan status kesihatan perkhidmatan kepada Fabio supaya trafik boleh dimajukan ke nod perkhidmatan yang sihat.

Kesimpulan

Menggunakan Consul dan Fabio boleh membantu pembangun dengan mudah melaksanakan penemuan perkhidmatan dan ketersediaan tinggi. Consul menyediakan kedai nilai kunci teragih yang berkuasa, DNS dan API HTTP untuk penemuan perkhidmatan, manakala Fabio menyediakan proksi terbalik yang ringan yang bertanggungjawab untuk menghalakan trafik dalam seni bina perkhidmatan mikro.

Jika anda sedang membangunkan sistem teragih yang kompleks, Consul dan Fabio ialah dua alat penting. Mereka memudahkan untuk membuat skala dan mengurus aplikasi anda serta mengurangkan beban penyelenggaraan anda.

Atas ialah kandungan terperinci Pembangunan PHP: menggunakan Konsul dan Fabio untuk mencapai ketersediaan tinggi dan penemuan perkhidmatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn