Heim  >  Artikel  >  Backend-Entwicklung  >  Ein Artikel, der ausführlich erklärt, wie man das Konfigurationscenter Nacos installiert und verwendet

Ein Artikel, der ausführlich erklärt, wie man das Konfigurationscenter Nacos installiert und verwendet

藏色散人
藏色散人nach vorne
2022-11-14 16:44:543062Durchsuche

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!

Ein Artikel, der ausführlich erklärt, wie man das Konfigurationscenter Nacos installiert und verwendet

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

    Sehen wir uns an, wie es in tatsächlichen Szenarien verwendet wird
  • Zum Beispiel: Eine E-Commerce-Website verfügt über diese Module: Benutzermodul, Produktmodul, Bestellmodul, Inventar Module

  • Diese Module müssen alle konfiguriert werden und ihre Konfigurationen sind unterschiedlich. Auf diese Weise erstellen wir für jedes Modul eine
  • -Konfiguration, nachdem wir online gegangen sind Zur Unterscheidung der Gruppen dev und pro müssen sowohl dev als auch

  • pro ausgefüllt werden.
  • Nacos-Installation

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"
    }
}
Die gesamte Konfigurationsdatei ist jetzt konfiguriert

Lesen Sie die Konfigurationsdatei in Nacos

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

Konfiguration lesen

Bevor wir die Konfiguration lesen, schreiben wir zunächst eine Struktur für die Konfigurationszuordnung

Verzeichnisstruktur:

nacos_test
├── config
│   └── config.go
└── main.go
Beim Schreiben der Konfiguration müssen wir darauf achten, dass wir Der Tag-Name und die Konfigurationsdatei müssen beibehalten werden. Die Namen sind gleich. Die Konfigurationsdatei wird unten gelesen: Du kannst es so schreiben:

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen