Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Entwicklung: Implementierung des HA-Modus und Failover mit Redis und Sentinel

PHP-Entwicklung: Implementierung des HA-Modus und Failover mit Redis und Sentinel

王林
Freigeben: 2023-06-17 11:30:01
Original
1302 Leute haben es durchsucht

Unter der traditionellen Single-Node-Architektur werden alle Anfragen für eine Anwendung an denselben Server gesendet. Obwohl diese Architektur relativ einfach ist, birgt sie das Risiko eines Single Point of Failure. Wenn der Server, auf dem sich die Anwendung befindet, ausgefallen ist, schlagen alle Anfragen fehl.

Um dieses Problem zu lösen, müssen wir die Anwendung auf mehreren Servern bereitstellen, um den Hochverfügbarkeitsmodus (HA) und Failover zu erreichen. In diesem Artikel erfahren Sie, wie Sie Hochverfügbarkeit und Failover mithilfe von Redis und Sentinel implementieren.

Redis ist ein schnelles In-Memory-Datenspeichersystem, das häufig für Caching, Warteschlangen, Echtzeitanalysen und Messaging verwendet wird. Redis verfügt über ein Single-Threaded-Design und nutzt Arbeitsspeicher als Speicher. Dies verleiht Redis eine hervorragende Leistung und Skalierbarkeit.

Sentinel ist eine Hochverfügbarkeitslösung für Redis. Es kann Redis-Instanzen überwachen und automatisch zu Backup-Knoten wechseln, wenn der Primärknoten ausfällt. Dieses automatische Failover stellt sicher, dass Ihre Redis-Instanz immer verfügbar ist.

Hier sind die Schritte zur Implementierung von Hochverfügbarkeit und Failover mit Redis und Sentinel.

Erster Schritt: Installieren Sie Redis und Sentinel

Auf CentOS können Sie den folgenden Befehl verwenden, um Redis und Sentinel zu installieren:

yum install redis sentinel
Nach dem Login kopieren

Auf Ubuntu können Sie den folgenden Befehl verwenden, um Redis und Sentinel zu installieren:

apt-get install redis sentinel
Nach dem Login kopieren

Zweiter Schritt: Redis-Konfigurationsdatei ändern

Auf dem Primärknoten und dem Sicherungsknoten muss die Redis-Konfigurationsdatei geändert werden. Unter CentOS befindet sich die Konfigurationsdatei unter /etc/redis.conf und unter Ubuntu befindet sich die Konfigurationsdatei unter /etc/redis/redis.conf. /etc/redis.conf,在 Ubuntu 上,配置文件位于 /etc/redis/redis.conf

在配置文件中,需要将 bind 参数设置为节点的 IP 地址。如果您想允许来自任何 IP 的客户端连接到 Redis,可以将 bind 参数设置为 0.0.0.0。

您还需要将 requirepass 参数设置为密码,以确保只有授权用户才能访问 Redis。

最后,将 daemonize 参数设置为 yes,以确保 Redis 在后台运行。

bind 192.168.0.1
requirepass mypassword
daemonize yes
Nach dem Login kopieren

对于备份节点,还需要将 slaveof 参数设置为主节点的 IP 地址和端口号。

slaveof 192.168.0.1 6379
Nach dem Login kopieren

第三步,修改 Sentinel 配置文件

在 CentOS 上,Sentinel 配置文件位于 /etc/redis-sentinel.conf,在 Ubuntu 上,Sentinel 配置文件位于 /etc/redis/sentinel.conf

在 Sentinel 配置文件中,需要设置 bind 参数,以确保 Sentinel 接收来自客户端的请求。如果您想允许来自任何 IP 地址的客户端连接到 Sentinel,可以将 bind 参数设置为 0.0.0.0。

您还需要设置 sentinel monitor 参数,用于监视 Redis 实例。该参数包含了 Redis 实例的名称、IP 地址、端口号和故障转移阈值。

bind 192.168.0.2
sentinel monitor mymaster 192.168.0.1 6379 2
Nach dem Login kopieren

这个例子中,Sentinel 将监视名为 mymaster 的 Redis 实例。如果主节点失效了,Sentinel 将在备份节点上自动启动新的 Redis 实例并将其升级为主节点。

第四步,启动 Redis 和 Sentinel

在每个节点上,启动 Redis 和 Sentinel:

systemctl start redis
systemctl start redis-sentinel
Nach dem Login kopieren

在主节点启动后,Sentinel 将开始监视 Redis 实例。如果主节点失效,Sentinel 将在备份节点上自动启动新的 Redis 实例并将其升级为主节点。在这个过程中,客户端将自动切换到新的主节点,应用程序将继续正常工作。

您可以使用以下命令检查 Redis 实例的状态:

redis-cli -h 192.168.0.1 -p 6379 ping
Nach dem Login kopieren

您可以使用以下命令检查 Sentinel 的状态:

redis-cli -h 192.168.0.2 -p 26379 sentinel slaves mymaster
Nach dem Login kopieren

这个例子中,我们将 Sentinel 连接到 192.168.0.2 的端口 26379,并检查名为 mymaster

In der Konfigurationsdatei muss der Parameter bind auf die IP-Adresse des Knotens gesetzt werden. Wenn Sie Clients von jeder IP aus eine Verbindung zu Redis herstellen möchten, können Sie den Parameter bind auf 0.0.0.0 setzen.

Sie müssen außerdem den Parameter requirepass auf ein Passwort setzen, um sicherzustellen, dass nur autorisierte Benutzer auf Redis zugreifen können.

Setzen Sie abschließend den Parameter daemonize auf „Ja“, um sicherzustellen, dass Redis im Hintergrund ausgeführt wird.

rrreee

Für den Backup-Knoten müssen Sie außerdem den Parameter slaveof auf die IP-Adresse und Portnummer des Primärknotens setzen. 🎜rrreee🎜Der dritte Schritt besteht darin, die Sentinel-Konfigurationsdatei zu ändern. 🎜🎜 Unter CentOS befindet sich die Sentinel-Konfigurationsdatei unter /etc/redis-sentinel.conf. Unter Ubuntu befindet sich die Sentinel-Konfigurationsdatei unter /etc /redis/sentinel.conf. 🎜🎜In der Sentinel-Konfigurationsdatei muss der Parameter bind gesetzt werden, um sicherzustellen, dass Sentinel Anfragen vom Client empfängt. Wenn Sie zulassen möchten, dass Clients von jeder IP-Adresse eine Verbindung zu Sentinel herstellen, können Sie den Parameter bind auf 0.0.0.0 setzen. 🎜🎜Sie müssen außerdem den Parameter sentinel monitor festlegen, um die Redis-Instanz zu überwachen. Dieser Parameter enthält den Namen, die IP-Adresse, die Portnummer und den Failover-Schwellenwert der Redis-Instanz. 🎜rrreee🎜In diesem Beispiel überwacht Sentinel die Redis-Instanz mit dem Namen mymaster. Wenn der Primärknoten ausfällt, startet Sentinel automatisch eine neue Redis-Instanz auf dem Backup-Knoten und stuft sie zum Primärknoten hoch. 🎜🎜Schritt 4: Starten Sie Redis und Sentinel. Wenn der Primärknoten ausfällt, startet Sentinel automatisch eine neue Redis-Instanz auf dem Backup-Knoten und stuft sie zum Primärknoten hoch. Während dieses Vorgangs wechselt der Client automatisch zum neuen Masterknoten und die Anwendung funktioniert normal weiter. 🎜🎜Sie können den Status Ihrer Redis-Instanz mit dem folgenden Befehl überprüfen: 🎜rrreee🎜 Sie können den Status von Sentinel mit dem folgenden Befehl überprüfen: 🎜rrreee🎜In diesem Beispiel verbinden wir Sentinel mit Port 26379 von 192.168.0.2 und prüfen der Name mymaster. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel haben wir erläutert, wie Sie mit Redis und Sentinel Hochverfügbarkeit und Failover erreichen. Durch die Bereitstellung der Anwendung auf mehreren Servern und die Verwendung eines automatischen Failovers können Sie sicherstellen, dass die Anwendung weiterhin ordnungsgemäß funktioniert, wenn der Primärknoten ausfällt. 🎜🎜So erhöhen Sie die Verfügbarkeit Ihrer Anwendung und reduzieren das Risiko von Single Points of Failure. Wir hoffen, dass Sie diesen Artikel hilfreich fanden und wünschen Ihnen viel Glück bei der Verwendung von Redis und Sentinel. 🎜

Das obige ist der detaillierte Inhalt vonPHP-Entwicklung: Implementierung des HA-Modus und Failover mit Redis und Sentinel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage