Spring-Clould-Alibaba-Nacos[Config&RPC]

Spring-Clould-Alibaba-Nacos[Config&RPC]

  • 1、环境准备
  • 2、配置文件
    • 2.1添加本地配置
    • 2.2修改服务端配置
    • 2.3配置文件
  • 4、服务注册发现
  • 3、RPC服务调用

1、环境准备

  • 我的环境
  • Windows10
  • JDK8
  • SpringBoot:2.2.5.RELEASE
  • spring-cloud-alibaba-dependencies:2.2.1.RELEASE
  • Nacos-server:1.1.4

组件版本关系参考官网
在这里插入图片描述
父类工程POM文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.5.RELEASE</version>
	</parent>
	<groupId>com.ads.nacos</groupId>
	<artifactId>spring-cloud-dubbo-nacos</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>
	
	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.alibaba.cloud</groupId>
				<artifactId>spring-cloud-alibaba-dependencies</artifactId>
				<version>2.2.1.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<modules>
		<module>nacos-api</module>
		<module>nacos-provider</module>
		<module>nacos-concumer</module>
	</modules>

</project>

API 工程POM文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.ads.nacos</groupId>
		<artifactId>spring-cloud-dubbo-nacos</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<artifactId>nacos-api</artifactId>
</project>

provider POM文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.ads.nacos</groupId>
		<artifactId>spring-cloud-dubbo-nacos</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<artifactId>nacos-provider</artifactId>

	<dependencies>
		<dependency>
			<groupId>com.ads.nacos</groupId>
			<artifactId>nacos-api</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

consumer POM文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.ads.nacos</groupId>
		<artifactId>spring-cloud-dubbo-nacos</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<artifactId>nacos-concumer</artifactId>

	<dependencies>
		<dependency>
			<groupId>com.ads.nacos</groupId>
			<artifactId>nacos-api</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
	</dependencies>

</project>

2、配置文件

Spring Boot 配置文件的加载顺序,依次为 bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml ,其中 bootstrap.properties 配置为最高优先级,配置如下:

nacos-config:

  • group:config的分组
  • file-extension:动态配置文件类型

注意:
若是引用了config的pom,这里必须使用 bootstrap.properties 进行配置,否则启动回报连接超时
注意:你可以使用 spring.cloud.nacos.config.refresh.enabled=false 来关闭动态刷新
可通过spring.profiles.active切换部署环境配置
其Data ID它的定义规则是:${prefix}-${spring.profile.active}.${file-extension}

Spring-Clould-Alibaba-Nacos[Config&RPC]_第1张图片

2.1添加本地配置

bootstrap.properties修改spring.cloud.nacos.config.prefix=application-provider-1
application.yml 修改server.port:8008和dubbo.protocol.port:8998
application-provider-1.yml添加如下配置

localConfig: abc

bootstrap.properties修改spring.cloud.nacos.config.prefix=application-provider-2
application.yml 修改server.port:8009和dubbo.protocol.port:8999
application-provider-2.yml添加如下配置

localConfig: ABC

在引入配置文件的类上增加 @RefreshScope 注解,表示这个类下的配置内容支持动态刷新

Spring-Clould-Alibaba-Nacos[Config&RPC]_第2张图片

2.2修改服务端配置

Spring-Clould-Alibaba-Nacos[Config&RPC]_第3张图片
服务发现:

2.3配置文件

服务提供方 - 服务消费方

Spring-Clould-Alibaba-Nacos[Config&RPC]_第4张图片

4、服务注册发现

启动2个配置下的consumer可以发现实例数为2,点开详情dubbo的2个端口发现为8998、8999

Spring-Clould-Alibaba-Nacos[Config&RPC]_第5张图片

3、RPC服务调用

服务提供:

Spring-Clould-Alibaba-Nacos[Config&RPC]_第6张图片
服务调用:

Spring-Clould-Alibaba-Nacos[Config&RPC]_第7张图片
调用的version、group需保持一致

服务调用结果:

在这里插入图片描述
调用查看配置接口,可以发现服务端实现负载均衡

在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(nacos,nacos,dubbo,rpc,spirngcloud,nacos,spring,cloud,ali)