本地启动nacos
进入bin目录 双击startup.cmd
注意是单节点standalone启动,若是cluster,需打开startup.cmd文件 修改
启动成功后,到浏览器中访问localhost:8848/nacos,默认登录账号密码都是nacos,登录成功后界面如下:
搭建gateway-server 服务
1.添加关键依赖
<!--nacos作为注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--引入gateway依赖 -->
<!--Gateway 不支持spring boot web包 去除spring-boot-starter-web依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
2.application.yml
server:
port: 8085
spring:
application:
name: gateway-server #必写,否则无法注册到nacos中
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
locator:
enabled: true
routes:
- id: system-server #路由的ID,没有固定规则,但要求唯一,建议配合服务名
# uri: http://localhost:8086
uri: lb://system-server #匹配后提供服务的路由地址-------这里用的动态路由格式统一为 lb://注册进nacos服务中心的名字
predicates:
- Path=/welcome/** #断言,路径相匹配的进行路由--------断言也就是匹配方式,当识别到/welcome/**时就会跳转上面的uri
filters:
- StripPrefix=1 # 去掉1个访问前缀 如 /welcome/login 其实就是访问目标服务的/login
3.启动类添加@EnableDiscoveryClient 开启服务注册与发现
2.用于测试的system-server
1.添加关键依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.yml文件
server:
port: 8086
spring:
application:
name: system-server
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
3.启动类添加@EnableDiscoveryClient
4.测试路由接口
@RestController
public class UserController {
@RequestMapping("/userInfo")
public String getUserInfo(){
return "please getUserInfo";
}
}
3.效果
nacos注册中心
请求接口
成功访问目标路由