Maison  >  Article  >  développement back-end  >  Développement PHP : haute disponibilité et découverte de services avec Consul et Fabio

Développement PHP : haute disponibilité et découverte de services avec Consul et Fabio

王林
王林original
2023-06-15 15:27:34975parcourir

Avec le nombre croissant d'applications modernes, les développeurs doivent de plus en plus prêter attention aux problèmes de découverte de services et de haute disponibilité. La découverte de services fait référence à la capacité de découvrir d'autres services dans un système distribué afin de coordonner leur travail. La haute disponibilité fait référence à la capacité d'un système à continuer de fonctionner normalement en cas de pannes.

Consul et Fabio sont deux outils open source largement utilisés qui peuvent aider les développeurs à réaliser les fonctions ci-dessus. Les deux outils utilisent une architecture de microservices moderne pour gérer et surveiller facilement l'ensemble du système.

Consul est un outil de découverte de services open source qui fournit la découverte de services, la vérification de l'état, le stockage distribué de valeurs-clés et d'autres fonctions. Consul fournit la découverte de services en fournissant une API DNS ou HTTP, permettant aux développeurs d'accéder aux services via une interface unifiée.

Fabio est un proxy inverse HTTP et TCP léger pour le routage du trafic dans une architecture de microservices. Fabio peut automatiquement interroger Consul pour obtenir des informations sur l'état de santé du service afin de transférer le trafic vers des nœuds de service sains.

Ci-dessous, nous examinerons en profondeur comment utiliser Consul et Fabio pour obtenir une haute disponibilité et une découverte de services.

Installation de Consul

Nous devons télécharger la dernière version de Consul depuis son site officiel et l'extraire sur notre serveur. Vous pouvez télécharger la version appropriée à votre système d'exploitation à partir de [https://www.consul.io/downloads.html](https://www.consul.io/downloads.html).

Après la décompression, nous pouvons déplacer le fichier exécutable dans le répertoire /usr/bin : /usr/bin 目录下:

sudo mv ./consul /usr/bin

为了使 Consul 在系统启动时自动运行,我们需要创建一个 systemd 服务。在 /etc/systemd/system 目录下创建一个命名为 consul.service 的文件,并将以下内容复制到其中:

[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

在上面的配置文件中,我们要求 Consul 在启动时作为服务器运行,并期望有至少三个节点。此外,我们还指定了 Consul 的工作目录和配置目录,并将其绑定到本地的所有 IP 地址上。

现在,我们可以启动和激活 Consul 服务:

sudo systemctl start consul
sudo systemctl enable consul

到这里,我们已经完成了 Consul 的安装和配置。

安装 Fabio

我们还需要从 Fabio 的官方网站下载最新版本的 Fabio 并将其解压缩到服务器上。你可以到 [https://fabiolb.net](https://fabiolb.net) 下载适用于你的操作系统的版本。

解压后,我们可以将可执行文件移到 /usr/bin 目录下:

sudo mv ./fabio /usr/bin

然后,我们需要创建一个 systemd 服务来管理 Fabio。在 /etc/systemd/system 目录下创建一个命名为 fabio.service

[Unit]
Description=Fabio Service Proxy

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

[Install]
WantedBy=multi-user.target

Afin que Consul s'exécute automatiquement au démarrage du système, nous devons créer un service systemd. Créez un fichier nommé consul.service dans le répertoire /etc/systemd/system et copiez-y le contenu suivant :

sudo systemctl start fabio
sudo systemctl enable fabio

Dans le fichier de configuration ci-dessus, nous avons besoin de Consul pour s'exécuter en tant que serveur au démarrage et attendre au moins trois nœuds. De plus, nous spécifions également le répertoire de travail et le répertoire de configuration de Consul et les lions à toutes les adresses IP locales.

Maintenant, nous pouvons démarrer et activer le service Consul :

rrreee

À ce stade, nous avons terminé l'installation et la configuration de Consul.

Installation de Fabio

Nous devons également télécharger la dernière version de Fabio depuis le site officiel de Fabio et l'extraire sur le serveur. Vous pouvez télécharger la version adaptée à votre système d'exploitation depuis [https://fabiolb.net](https://fabiolb.net).

Après la décompression, nous pouvons déplacer le fichier exécutable dans le répertoire /usr/bin : 🎜rrreee🎜Ensuite, nous devons créer un service systemd pour gérer Fabio. Créez un fichier nommé fabio.service dans le répertoire /etc/systemd/system et copiez-y le contenu suivant : 🎜rrreee🎜Dans le fichier de configuration ci-dessus, nous avons besoin de Fabio à exécuter en tant que service et spécifiez ses options associées pour gérer les nœuds de service. Fabio interrogera automatiquement Consul pour trouver des services et transférer le trafic vers des nœuds de service sains. 🎜🎜Maintenant, nous pouvons démarrer et activer le service Fabio : 🎜rrreee🎜 Si vous souhaitez utiliser la fonction de vérification de l'état, veuillez vous assurer que la vérification de l'état du service est correctement configurée dans Consul. Lorsqu'un service tombe en panne, Consul peut signaler l'état de santé du service à Fabio afin que le trafic puisse être transféré vers des nœuds de service sains. 🎜🎜Conclusion🎜🎜L'utilisation de Consul et Fabio peut aider les développeurs à mettre en œuvre facilement la découverte de services et la haute disponibilité. Consul fournit un puissant magasin de valeurs-clés distribué, DNS et API HTTP pour la découverte de services, tandis que Fabio fournit un proxy inverse léger responsable du routage du trafic dans une architecture de microservices. 🎜🎜Si vous développez un système distribué complexe, Consul et Fabio sont deux outils indispensables. Ils facilitent la mise à l'échelle et la gestion de vos applications et réduisent votre charge de maintenance. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn