Dieser Artikel wird Ihnen durch die Kolumne „Golang-Tutorial“ über das Konfigurationscenter „Nacos“ vorgestellt. Im Folgenden erfahren Sie mehr über das Konfigurationscenter aus der Sicht von Golang, die Installation von Naco und die Verwendung von Nacos zum Konfigurieren die Konfigurationsdateien in Nacos usw. Ich hoffe, es wird Ihnen nützlich sein, Freunde, die Hilfe brauchen!
Was ist das Konfigurationscenter?Ein System zur einheitlichen Verwaltung aller Konfigurationen im Projekt. Obwohl es einfach klingt, sollten Sie dieses Modul nicht unterschätzen. Wenn ein mittelgroßes Internetprojekt nicht das Konfigurationscenter-Modell übernimmt, bereiten eine große Anzahl verschiedener Konfigurationselemente und verschiedene unregelmäßige Änderungsanforderungen den Entwicklern definitiv viel Kopfzerbrechen und machen die Verwaltung sehr verwirrend.
Der Serviceprozess des Konfigurationscenters ist wie folgt: Benutzer aktualisieren Konfigurationsinformationen im Konfigurationscenter. Service A und Service B erhalten zeitnah Benachrichtigungen über Konfigurationsaktualisierungen und erhalten Konfigurationen vom Konfigurationscenter. Im Allgemeinen ist das Konfigurationscenter eine grundlegende Servicekomponente, die verschiedene Anwendungskonfigurationen einheitlich verwaltet.
In der Systemarchitektur ist das Konfigurationscenter eine Komponente im gesamten Microservice-Infrastruktursystem. Seine Funktion scheint nichts anderes als Konfigurationsverwaltung und Zugriff, aber es ist in der gesamten Microservice-Architektur einer Verbindung unverzichtbar. Was ist Nacos?
Geschäftskonfiguration, Funktionswechsel, Herabstufung schwacher Abhängigkeiten in der Dienstverwaltung und sogar Datenbankkennwörter usw. können alle das dynamische Konfigurationscenter verwenden. Wenn keine dedizierte Konfigurationscenter-Komponente vorhanden ist, verwenden wir harte Codierung, Konfigurationsdateien, Datenbanken, Caches usw., um das Problem zu lösen. Wenn Sie die Konfiguration durch harte Codierung ändern, müssen Sie die Konfigurationsdatei neu kompilieren und packen und die Anwendung neu starten. Die Datenbankleistung ist begrenzt und der Cache verliert an Aktualität.
Nacos-KonfigurationsmodellNamespace + Gruppe + Daten-ID bestimmt eindeutig eine Konfiguration
Namespace: An den Client gebunden entspricht ein Client einem Namespace, der zum Isolieren der Umgebung oder zur Unterscheidung von Mandantengruppen verwendet werden kann : Gruppe, Geschäft differenzieren
dataId: Konfigurierte ID
Zum Beispiel: Eine E-Commerce-Website verfügt über diese Module: Benutzermodul, Produktmodul, Bestellmodul, Inventar Module
-Konfiguration, nachdem wir online gegangen sind Zur Unterscheidung der Gruppen dev und pro müssen sowohl dev als auch
Hier verwenden wir Docker zur direkten Installation
Nacos-Installation (Docker)docker run --name nacos-standalone -e MODE=standalone -e JVM_XMS=512m -e JVM_XMX=512m -e JVM_XMN=256m -p 8848:8848 -d nacos/nacos-server:latest
Besuch: 192.168.1.103:8848/nacos/index.html Benutzername/Passwort: nacos/nacos
Konfigurieren Startup:
docker container update --restart=always xxx
Nacos für die Konfiguration verwenden
nacos Nach erfolgreichem Start können Sie einen Namespace erstellen. Nach der Erstellung erstellen wir einen neuen Benutzermodulbenutzer erfolgreich ist, können Sie sehen, dass es eine entsprechende ID gibt, zum Beispiel: 7ae18f62-e2b9-48bd-bff2-a49e7443f5bc
Dann erstellen wir eine neue Konfigurationsdatei unter dem Benutzernamensraum und geben den entsprechenden Namen (dataId) und die entsprechende Gruppe ein. Hier erstellen wir eine neue josn-Konfigurationsdatei: {
"name": "user-web",
"host": "10.2.106.169",
"port": 9091,
"tags":["iceymoss", "goods", "golang", "web"],
"user_srv":{
"name": "user-srv",
"host": "10.2.106.169",
"port": 8081
},
"jwt":{
"key": "dfijdfjidhfjijdfbdfdFwohPd6XmVCdnQi"
},
"sms":{
"key": "mykey",
"secret": "mysecret"
},
"params":{
"sign_name": "生鲜小店",
"code": "SMS_244610581"
},
"redis":{
"host": "127.0.0.1",
"port": 6379,
"expir": 300
},
"verify":{
"width": 5
},
"consul":{
"host": "10.2.106.169",
"port": 8500
},
"tracing":{
"host": "127.0.0.1",
"port": 6831,
"name": "shopping"
}
}
Ziehen Sie die Abhängigkeiten
Wir verwenden go, um die Konfigurationsdatei zu lesen und das SDK zu verwenden Das muss nacos ziehen:
go get github.com/nacos-group/nacos-sdk-go/clients go get github.com/nacos-group/nacos-sdk-go/common/constant go get github.com/nacos-group/nacos-sdk-go/vo
Bevor wir die Konfiguration lesen, schreiben wir zunächst eine Struktur für die Konfigurationszuordnung
Verzeichnisstruktur:nacos_test
├── config
│ └── config.go
└── main.go
package config //UserSerConfig 映射用户配置 type UserSerConfig struct { Name string `mapstructure:"name" json:"name"` Host string `mapstructure:"host" json:"host"` Port int `mapstructure:"port" json:"port"` } //JWTConfig 映射token配置 type JWTConfig struct { SigningKey string `mapstructure:"key" json:"key"` } //AliSmsConfig 阿里秘钥 type AliSmsConfig struct { Apikey string `mapstructure:"key" json:"key"` ApiSecret string `mapstructure:"secret" json:"secret"` } //ParamsConfig 短信模板配置 type ParamsConfig struct { SignName string `mapstructure:"sign_name" json:"sign_name"` TemplateCode string `mapstructure:"code" json:"code"` } //RedisConfig redis数据库配置 type RedisConfig struct { Host string `mapstructure:"host" json:"host"` Port int `mapstructure:"port" json:"port"` Expir int `mapstructure:"expir" json:"expir"` } //Verifier 手机验证长度 type Verifier struct { Width int `mapstructure:"width" json:"width"` } type ConsulConfig struct { Host string `mapstructure:"host" json:"host"` Port int `mapstructure:"port" json:"port"` } //ServerConfig 映射服务配置 type ServerConfig struct { Name string `mapstructure:"name" json:"name"` Port int `mapstructure:"port" json:"port"` UserSerInfo UserSerConfig `mapstructure:"user_srv" json:"user_srv"` JWTInfo JWTConfig `mapstructure:"jwt" json:"jwt"` AliSms AliSmsConfig `mapstructure:"sms" json:"sms"` Params ParamsConfig `mapstructure:"params" json:"params"` Redis RedisConfig `mapstructure:"redis" json:"redis"` Verify Verifier `mapstructure:"verify" json:"verify"` ConsulInfo ConsulConfig `mapstructure:"consul" json:"consul"` }
Das obige ist der detaillierte Inhalt vonEin Artikel, der ausführlich erklärt, wie man das Konfigurationscenter Nacos installiert und verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!