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
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
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
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
Nacos fügt Konfigurationsdatei hinzu
Zusammenfassung:
Die Benennungsregeln von Data ID lauten wie folgt, achten Sie auf den Suffixnamen, um das yaml-
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
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,
wenn Sie die Konfigurationsdatei verwenden möchten der Entwicklungsumgebung müssen Sie die Nacos Configure-Konfigurationsdatei application.yml des zentralen Moduls ändern
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.
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
Wirkung: Es zeigt, dass die Info-Konfigurationsdatei unter der DEV_GROUP-Gruppe verwendet wird
Nacos-Namespace-Konfiguration
Wählen Sie einen neuen Namespace im Namespace aus, und Sie können automatisch
zwei weitere Spaces in der Namespace-ID-Serviceliste und der Konfigurationsliste generieren
. Fügen Sie zwei Konfigurationsdateien im Devspace hinzu, die DataID ist dieselbe, aber die Gruppierung
in der Bootstrap.yml ist anders Konfigurationsdatei Gruppenkonfiguration und Namespace-Konfiguration hinzufügen
Namespace: wird verwendet, um den Namespace anzugeben
application.yml gibt die Entwicklungsumgebung an
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:
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
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
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:
- Nginx-Cluster
- Nacos-Cluster
- MySQL-Cluster (Master-Slave-Trennung)
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
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
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.
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
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