SpringCloud-Nacos Service Registration and Configuration Center

Download-Link:
https://pan.baidu.com/s/1E9J52g6uW_VFWY34fHL6zA Extraktionscode: vneh

Spring Cloud Alibaba Service Registration and Configuration Center (sehr detailliert)

jBetreten Sie das bin-Verzeichnis unter dem Nacos-Installationsverzeichnis, geben Sie cmd ein und starten Sie Nacos im eigenständigen Modus

startup.cmd -m standalone

Besuchen Sie die Nacos-Schnittstelle, http://localhost:8848/nacos

Bauen Sie einen Dienstanbieter auf und registrieren Sie sich in Nacos

Fügen Sie Abhängigkeiten in pom.xml hinzu

        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

In der Konfigurationsdatei hinzugefügt

spring:
  application:
    name: nacos-payment-provider # 服务的名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'

Fügen Sie der Startklasse Anmerkungen hinzu

@EnableDiscoveryClient // 开启 Nacos 服务发现功能
@SpringBootApplication
public class PaymentMain9001
{
    
    
    public static void main(String[] args) {
    
    
            SpringApplication.run(PaymentMain9001.class, args);
    }
}

Controller-Schicht

@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}

Starten Sie das Projekt, zeigen Sie die Dienstliste an, und Sie können feststellen, dass der Dienstliste ein Dienst hinzugefügt wurde
Bildbeschreibung hier einfügen

Erstellen Sie Service-Consumer, registrieren Sie sich in Nacos

Abhängigkeiten einführen

        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

Konfigurationsdatei

spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848


#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
  nacos-user-service: http://nacos-payment-provider

Kommentieren Sie die Startklasse: @EnableDiscoveryClient

Ribbon ist in Nacos integriert, Nacos unterstützt also automatisch den Lastausgleich
Bildbeschreibung hier einfügen
Definieren Sie die Konfigurationsklasse RestTemplate, mit der der Rest-Dienst aufgerufen werden kann

/**
 * @auther zzyy
 * @create 2020-02-23 14:45
 */
@Configuration
public class ApplicationContextConfig
{
    
    
    @Bean
    @LoadBalanced // 使用RestTemplate结合ribbon来做负载均衡的时候已经要加上这个注解
    public RestTemplate getRestTemplate()
    {
    
    
        return new RestTemplate();
    }
}

Controller-Schicht

@RestController
@Slf4j
public class OrderNacosController
{
    
    
    @Resource
    private RestTemplate restTemplate;

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping(value = "/consumer/payment/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id)
    {
    
    
        return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
    }

}

Starten Sie das Projekt
Bildbeschreibung hier einfügen
Besuchen Sie: http://localhost:83/consumer/payment/nacos/13, um den Effekt zu sehen
und stellen Sie fest, dass 9001 und 9002 abwechselnd erscheinen

Nacos als Konfigurationszentrum

Abhängigkeiten hinzufügen

        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

Konfigurationszentrum, Nacos als Konfigurationszentrum hat zwei Konfigurationsdateien bootstrap.yml und application.yml

Nacos ist dasselbe wie springcloud-config. Wenn das Projekt initialisiert wird, muss sichergestellt werden, dass zuerst die Konfiguration aus dem Konfigurationszentrum gezogen wird . Erst nachdem die Konfiguration gezogen wurde, kann das Projekt normal gestartet werden.

Das Laden von Konfigurationsdateien in Springboot wird nacheinander priorisiert, und Bootstrap hat eine höhere Priorität als die Anwendung

bootstrap.yml

# nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      # 服务注册
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      # 作为服务配置的客户端
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        #group: DEV_GROUP
        #namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4


# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml

# nacos-config-client-test.yaml   ----> config.info

Anwendung.yml

spring:
  profiles:
    active: dev # 表示开发环境
    #active: test # 表示测试环境
    #active: info

Kommentieren Sie die Hauptstartklasse: @EnableDiscoveryClient

Regler

@RestController
@RefreshScope //支持Nacos的动态刷新功能。
public class ConfigClientController
{
    
    
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
    
    
        return configInfo;
    }
}

Das Zusammensetzungsformat von dataid in Nacos und die übereinstimmenden Regeln mit der SpringBoot-Konfigurationsdatei

offizielles Dokument

Nacos fügt Konfigurationsdatei hinzu
Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen
Zusammenfassung:
Die Benennungsregeln von Data ID lauten wie folgt, achten Sie auf den Suffixnamen, um das yaml-
Bildbeschreibung hier einfügen
Startprojekt auszuwählen, besuchen Sie: http://localhost:3377/config/info

Nacos wird mit dynamischer Aktualisierung geliefert , ändern Sie den Konfigurationsinhalt von nacos-config-client-dev.yaml in Nacos, und das Ergebnis der gefundenen Anfrage wird ebenfalls zurückgegeben
Bildbeschreibung hier einfügen

Wenn Sie jetzt das Profil wechseln möchten

In der Nacos-Konfiguration gibt es zwei Dateien
nacos-config-client-dev.yaml und nacos-config-client-test.yaml, die sich von tets und dev unterscheiden,
Bildbeschreibung hier einfügen
wenn Sie die Konfigurationsdatei verwenden möchten der Entwicklungsumgebung müssen Sie die Nacos Configure-Konfigurationsdatei application.yml des zentralen Moduls ändern
Bildbeschreibung hier einfügen

Nacos-Gruppenkonfiguration

Die Gruppenkonfiguration soll denselben Konfigurationsdateinamen in verschiedenen Szenarien verwenden.
Der DataID-Name ist derselbe, der Gruppenname ist anders , derselbe Konfigurationsdateiname, aber nicht unter derselben Gruppe.
Bildbeschreibung hier einfügen
Wie werden Konfigurationsdateien unter verschiedenen Gruppen verwendet?
In bootstrap.yml konfigurieren Die zu verwendende Gruppierung ist in der Datei angegeben

Die Kombination der folgenden beiden Konfigurationen soll die Info-Konfigurationsdatei unter der DEV_GROUP-Gruppe finden
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Wirkung: Es zeigt, dass die Info-Konfigurationsdatei unter der DEV_GROUP-Gruppe verwendet wird
Bildbeschreibung hier einfügen

Nacos-Namespace-Konfiguration

Wählen Sie einen neuen Namespace im Namespace aus, und Sie können automatisch
Bildbeschreibung hier einfügen
zwei weitere Spaces in der Namespace-ID-Serviceliste und der Konfigurationsliste generieren
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
. Fügen Sie zwei Konfigurationsdateien im Devspace hinzu, die DataID ist dieselbe, aber die Gruppierung
Bildbeschreibung hier einfügen
in der Bootstrap.yml ist anders Konfigurationsdatei Gruppenkonfiguration und Namespace-Konfiguration hinzufügen
Namespace: wird verwendet, um den Namespace anzugeben
Bildbeschreibung hier einfügen
application.yml gibt die Entwicklungsumgebung an
Bildbeschreibung hier einfügen
Die beiden obigen Konfigurationen finden die Gruppe TEST_GROUP in der Namespace-ID: 63fcd633-6d24-4dc8-b2ae-fdee979b0507 , die Konfiguration der dev-Umgebung in
Ergebnis:
Bildbeschreibung hier einfügen
Zusammenfassung: Finden Sie zuerst den Namensraum, dann die Gruppe und schließlich die Umgebung

Persistente Nacos-Konfiguration

Nacos wird standardmäßig mit einer eingebetteten Datenbank Derby geliefert
Bildbeschreibung hier einfügen
Jedes Nacos wird mit einer Derby-Datenbank geliefert Beim Aufbau eines Clusters kann nicht sichergestellt werden, dass die Konfiguration so vieler Nacos vereinheitlicht werden kann

Konfigurieren Sie derby, um zur MySQL-Datenbank zu wechseln

Es gibt eine SQL-Skriptdatei im conf-Verzeichnis von Nacos: nacos-mysql.sql
Bildbeschreibung hier einfügen
1. Erstellen Sie eine neue Datenbank: nacos_config
2. Führen Sie die Skriptdatei aus
3. Ändern Sie die Datei conf/application.properties, um Unterstützung für die mysql-Datenquellenkonfiguration hinzuzufügen (unterstützt derzeit nur mysql ), fügen Sie die URL, den Benutzernamen und das Passwort der mysql-Datenquelle hinzu.

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root

Nach dem Neustart von Nacos wird die hinzugefügte Konfiguration zur MySQL-Tabelle hinzugefügt

Konfiguration des Nacos-Clusters

Nacos 2.0.3 Linux System Detailliertes Tutorial zum Erstellen eines Clusters.
In der tatsächlichen Produktionsumgebung müssen mindestens drei Nacos vorhanden sein. Wenn es nur einen gibt, verwendet der gesamte Dienst direkt den GG-Cluster, sobald ein Single Point of Failure
auftritt die Architektur:

  1. Nginx-Cluster
  2. Nacos-Cluster
  3. MySQL-Cluster (Master-Slave-Trennung)

Bildbeschreibung hier einfügen

Installieren Sie Nacos unter Linux

Download nacos-server-2.1.0.tar.gz
Download nacos-server-1.4.2.tar.gz
Erstellen Sie ein neues mynacos unter /opt, speichern Sie den nacos-Cluster,
laden Sie nacos-server-2.1.0.tar.gz hoch mynacos, dekomprimieren

tar -zxvf nacos-server-2.1.0.tar.gz 

Bildbeschreibung hier einfügen

Konfigurieren Sie nacos entsprechend der MySQL-Persistenz

Konfigurieren Sie die Nacos-Datenbankadresse: Erstellen Sie eine neue Datenbank nacos-config, führen Sie das SQL-Skript unter config aus,
ändern Sie die Datei application.properties, fügen Sie sie hinzu

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root

Nacos-Clusterkonfiguration cluster.conf auf dem Linux-Server

Bildbeschreibung hier einfügen

Verwenden Sie den Befehl hostname -i, um die echte IP-Adresse der Maschine anzuzeigen.
Diese IP kann nicht als 127.0.0.1 geschrieben werden. Es muss eine IP sein, die durch den Linux-Befehl hostname -i erkannt werden kann.
Bildbeschreibung hier einfügen
Stellen Sie drei Maschinen als Cluster ein, und die Ports sind jeweils 333, 444 und 555.
Bearbeiten Sie die Datei cluster.conf* und löschen Sie den gesamten Inhalt, und fügen Sie dann den folgenden Inhalt hinzu

你的ip:333
你的ip:444
你的ip:555

Erstellen Sie einen Cluster

Ändern Sie die Datei „application.properties“, konfigurieren Sie mysql ,
ändern Sie die Datei „cluster.conf
und konfigurieren Sie die Portnummer des Clusters
. 5555
, geben Sie zum Starten das bin-Verzeichnis ein

./startup.sh

Führen Sie den Befehl aus, um den Prozess anzuzeigen, nachdem der Start erfolgreich war

ps -ef|grep nacos

Bildbeschreibung hier einfügen

nginx konfigurieren

Bearbeiten Sie die Nginx-Konfigurationsdatei und fügen Sie Folgendes hinzu:

	upstream cluster{
		server 127.0.0.1:3333
		server 127.0.0.1:4444
		server 127.0.0.1:5555
	}
	
	server {
		listen 1111;
		server_name localhost;
		location / {
			proxy_pass http://cluster;
		}
	} 

nginx neu starten ./nginx -c gibt die zu startende Konfigurationsdatei an

./nginx -c /www/server/nginx/conf/nginx.conf

Nacos konnte wegen Platzmangel nicht starten

Acho que você gosta

Origin blog.csdn.net/qq_44154912/article/details/125088346
Recomendado
Clasificación