搭建Spring-Cloud-Alibaba+Nacos配置与注册
一、项目结构
二、依赖引入
1、父工程springcloud-nacos依赖引入
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、alibaba-cloud-commons-api模块放公共代码以及依赖
<dependencies>
<!-- nacos注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 依赖启动器的主要作用是提供Web开发场景所需的底层所有依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 测试依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
3、alibaba-cloud-provder生产者依赖
<!-- 引入公共模块-->
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>alibaba-cloud-commons-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
5、alibaba-cloud-member消费者依赖
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>alibaba-cloud-commons-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
6、alibaba-cloud-gateway-api网关相关依赖
<dependencies>
<!-- nacos注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--gateway网关 不能引入starter-web-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
</dependencies>
三、yml以及相关信息
1、alibaba-cloud-provder的yml
spring:
cloud:
nacos:
# 服务配置,这个不加会翻车
config:
server-addr: http://127.0.0.1:8848
#命名空间
namespace: 45a7070c-2759-4465-949e-37a575dc1957
#GROUP
group: DEFAULT_GROUP
#配置文件 尾部
file-extension: yml
#配置文件名,前缀
prefix: springcloud-provder
discovery:
server-addr: http://127.0.0.1:8848
#命名空间id
namespace: 45a7070c-2759-4465-949e-37a575dc1957
2、alibaba-cloud-member的yml同理适当修改
3、alibaba-gateway-api的yml配置
spring:
application:
name: springcloud-gateway
cloud:
nacos:
# 服务配置,这个不加会翻车
config:
server-addr: http://127.0.0.1:8848
#命名空间
namespace: 45a7070c-2759-4465-949e-37a575dc1957
#GROUP
group: DEFAULT_GROUP
#配置文件 尾部
file-extension: yml
#配置文件名,前缀
prefix: springcloud-gateway-application
discovery:
server-addr: http://127.0.0.1:8848
#命名空间id
namespace: 45a7070c-2759-4465-949e-37a575dc1957
四、nacos相关配置
1、windows版nacos打开安装nacos目录bin下双击startup如图所示:
启动成功后访问红色框框内的地址
2、nacos中配置命令空间以及配置列表
3、在对应命名空间下创建相应的配置文件
以springcloud-provder.yml为例对应的是alibaba-cloud-provder如图所示
5、服务启动类增加注解
@SpringBootApplication
@EnableDiscoveryClient
6、启动alibaba-cloud-provder服务查看nacos中是否成功注册与正确使用配置
7、nacos中gateway代理其他服务配置详细(这里代理的是我demo当中的provder服务)
server:
port: 8091
spring:
application:
name: springcloud-gateway
cloud:
gateway:
discovery:
locator:
####开启以服务id去注册中心上获取转发地址
enabled: true
###路由策略
routes:
##路由id服务名称
- id: springcloud-provder
#### 基于lb负载均衡形式转发(通过注册中心服务名称,获取真实访问地址)
uri: lb://springcloud-provder
###过滤掉-Path前两个前缀
filters:
- StripPrefix=2
###匹配规则
predicates:
- Path=/api/springcloud-provder/**
即可。
有不妥的地方欢迎指正。