Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in die Konfiguration der Verwendung von Consul zur Verwaltung von Laravel-Projekten

Einführung in die Konfiguration der Verwendung von Consul zur Verwaltung von Laravel-Projekten

不言
不言Original
2018-07-06 15:31:584620Durchsuche

Ich arbeite seit mehr als einem Jahr in der Vorproduktionsumgebung, daher werde ich es hier aufzeichnen und teilen.

Einführung in die Konfiguration der Verwendung von Consul zur Verwaltung von Laravel-Projekten

Probleme und andere Lösungen

Wenn wir mehrere verschiedene Projekte auf mehreren Servern bereitstellen müssen, benötigen wir zentralisierte Konfigurationsinformationsverwaltungs- und Synchronisierungstools. Die in Betracht gezogenen Lösungen sind:

  1. Dateien mit rsync synchronisieren.env: Die Konfiguration mehrerer Projekte ist etwas umständlich und erfordert SSH zum Server, um sie zu ändern und dann zu synchronisieren

  2. Verwenden Sie Docker: Die Clusterbereitstellung ist bequemer. Sie können die grafische Oberfläche zum Ändern von Umgebungsvariablen verwenden, aber das Aktualisieren von Umgebungsvariablen erfordert einen Neustart des Containers. Die meisten Projekte wurden nicht auf Docker migriert

Werfen wir einen Blick auf die Consul + Consul-Vorlagenlösung.

Installation

Sowohl Consul als auch Consul Template stellen vorkompilierte ausführbare Dateien bereit. Laden Sie sie einfach herunter und entpacken Sie sie.

Konsul starten:

consul agent -server -bootstrap -ui -bind <ip>

Andere Serviceknoten können dem Cluster über

beitreten. consul agent -join <ip></ip>

Verwalten Sie Consul nach dem Start über Consul-Befehle, RESTful API und Web-UI.

Consul KV

Consul bietet einen verteilten Schlüsselwertspeicher, der zum Speichern dynamischer Konfigurationsinformationen von Anwendungen verwendet werden kann:

# put 设置一个KV对
consul kv put APP_DEBUG false

# get 获取
consul kv get APP_DEBUG

# exprot 导出JSON
consul kv export > data.json

# import 导入JSON
consul kv import @data.json

# delete 删除
consul kv delete APP_DEBUG

Consul KV unterstützt Verzeichnis, can Dies kann durch die Trennung der Schlüssel durch

erreicht werden. Beispielsweise verwenden wir ein Verzeichnis wie /, um alle Konfigurationen eines Projekts zu speichern. configs/<app_name>/</app_name>

Consul-Vorlage

Die Konfiguration wird zentral verwaltet. Wie wird sie an Laravel übergeben? Eine Methode besteht darin, die Consul-API in Laravel zu verwenden, um Konfigurationsinformationen abzurufen. Die zweite Methode besteht darin, KV-Änderungen extern zu überwachen und sie in die Datei

zu schreiben. .env

Die von uns verwendete Konfigurationsvorlage (

): .env.tpl

{{ range ls "configs/crm" }}
{{ .Key }}={{ .Value }}{{ end }}

bedeutet, das

KV-Verzeichnis zu durchlaufen und das config/crm-Format zu generieren. key=value

Führen Sie Folgendes aus:

## 格式: 模板文件:目标文件:更新后执行的命令
consul-template --template \
    /path/to/.env.tpl:/path/to/.env:&#39;php /path/to/artisan config:cache&#39;

, um die .env-Datei zu generieren und Änderungen kontinuierlich zu überwachen. Eine consul-template-Instanz kann mehrere --template-Parameter haben, die für mehrere Parameter auf einem Server verwendet werden können . Konfigurationsdateien für jedes Projekt generieren.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Interpretation des Laravel Service Containers (IocContainer)

Laravel-Benutzerauthentifizierungssystem (Grundlegende Einführung)

Das Laravel WeChat-Applet erhält Benutzerdetails und eine Analyse der Applet-Code-Erweiterung mit Parametern

Das obige ist der detaillierte Inhalt vonEinführung in die Konfiguration der Verwendung von Consul zur Verwaltung von Laravel-Projekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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