1.首先我们需要先下载nacos(这里使用的是window版的)进行安装,然后进行启动
启动之后我们可以看到一个网址我们进入网址初始值为 nacos nacos
登录过后我们就进入了这个页面
然后在商城中我们每个微服务都需要进行服务的注册与发现以及配置中心的管理
1),先导入依赖
<!-- 服务注册/发现-->
<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-nacos-config</artifactId>
</dependency>
2),我们需要在微服务创建application.properties文件 进行服务的注册配置,我们还要在运行主程序上添加注解@EnableDiscoveryClient。
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
然后进入nacos可视化界面可以发现服务注册进来了
3),然后我们需要使用nacos的配置中心
a,先引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
b,创建一个bootstrap.properties文件输入以下内容
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
c,需要给配置中心默认添加一个叫 数据集(data id):gulimall-coupon.properties 默认规则问 当前服务名.properties
e,我们可以动态获取配置文件的值
@RefreshScope 动态获取并刷新配置
@Value("${配置项的名}") 获取配置项的值 如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置
4),使用配置中心 注意细节:
这是同时配置多个配置集的 我在这使用的是dev环境下的
spring.cloud.nacos.config.namespace=2b0a9f7c-48f5-42cc-8230-c4f2e49a9f77
spring.cloud.nacos.config.group=dev
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true
spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
同时我们可以把application.yml文件的内容配置到管理中心来 2.GateWay网关的使用
2.1、作用
反向代理、鉴权、流量控制、熔断以及日志监控
2.2、微服务中网关位置
2.3、核心功能
2.3.1、路由(Route)
路由是构建网关的基本模块
由ID,目标URI,一系列的断言和过滤器组成
2.3.2、断言(Predicate)
开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数)
如果请求与断言相匹配则进行路由
2.3.3、过滤(Filter)
指的是Spring框架中GatewayFilter的实例
使用过滤器,可以在请求被路由前或者之后对请求进行修改.
2.4、Gateway工作流程
2.4.1、流程
1.客户端向Getway发出请求,然后在Gateway Handler Mapping中找到与请求匹配的路由,并发送到Gateway Web Handler
2.Handler再通过指定的过滤器链,将请求发送到实际的服务执行业务逻辑,然后返回。
2.4.2、过滤器链
发送代理请求之前(“pre”)作用:参数校验、权限校验、流量监控、日志输出和协议转换等。
发送代理请求之后(“post”)作用:响应内容、响应头修改、日志输出、流量监控等
2、Gateway使用
2.5、固定IP地址进行路由
2.5.5、POM文件
添加Gateway依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
application.properties配置
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
server.port=88
spring.application.name=gulimall-gateway
bootstrap.properties配置
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=dd21cecd-35c5-416f-9596-eb6d010a90ff
2.6添加匹配路由的地址
在application.yml中配置
spring:
cloud:
gateway:
routes:
- id: test_route
uri: https://www.baidu.com
predicates:
- Query=url,baidu
测试案例成功