需要拉取Nacos配置的时候要有
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
🌟 应用场景: 当你需要集中管理和动态更新应用配置时使用。
使用Nacos这个必须要有
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
⭐️应用场景: 当你需要实现服务间的自动发现和调用时使用。
只要网关项目加上就可以其他项目不用加
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-gatewayartifactId>
dependency>
🌟这个是加在gateway里面的依赖
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-gateway-spring-boot-starterartifactId>
<version>4.4.0version>
dependency>
引入了Knife4j Gateway的Spring Boot启动器,提供了开箱即用的API网关功能。
主要功能包括:
🌟这是正常项目的依赖
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starterartifactId>
<version>4.4.0version>
dependency>
注意二者区别
访问地址:http://localhost:8080/doc.html
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
删除依赖后加入下面依赖:
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
dependencies>
🌟 这里的依赖子工程自动配置
删除的都已有父工程管理
网关名字记得改
端口要改不然冲突
看上张图片,因为我们又运行了一个服务
可直接打开Knif4j使用或者使用ApiPost
注意测试负载均衡访问的是微服务所以端口号是9091同时路径别忘写
⭐️访问实例的时候可以调整一下权重看看负载均衡与灰度发布效果
设置权重调整比例即可
🌟 注意一点负载均衡是按概率
不是按比例
🌟 灰度发布将新版本以一定比例或特定用户群体的形式逐步发布,而不是一次性将所有用户切换到新版本。这样可以在新版本出现问题时,快速回退并限制影响范围。
不管谁访问经由网关即可访问实例
Spring Cloud Gateway 是一个用于构建 API 网关的框架,提供了多种服务路由、过滤和负载均衡的功能
动态路由:
过滤器:
负载均衡:
断路器支持:
安全与认证:
响应式编程:
监控和追踪:
应用场景
配置文件参考:
spring.application.name=nacos-demo
server.port=8080
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=nacos
spring.cloud.nacos.config.contextPath=/nacos
# 设置配置中心服务端地址
spring.cloud.nacos.config.server-addr=localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
spring.cloud.nacos.config.namespace=nacos-demo
spring.config.import=nacos:datatest.properties?refresh=true
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
# Nacos认证信息
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
# Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addr=localhost:8848
# 注册到 nacos 的指定 namespace,默认为 public
spring.cloud.nacos.discovery.namespace=nacos-demo
spring.application.name=gateway
server.port=9091
knife4j.gateway.discovery.enabled=true
knife4j.gateway.enabled=true
knife4j.gateway.tags-sorter=order
knife4j.gateway.operations-sorter=order
knife4j.gateway.strategy=discover
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=nacos
spring.cloud.nacos.config.contextPath=/nacos
spring.cloud.nacos.config.server-addr=localhost:8848
spring.config.import=nacos:datatest.properties?refresh=true
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.cloud.nacos.discovery.namespace=nacos-demo
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowed-origin-patterns=*
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedHeaders=*
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowCredentials=true
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedMethods[0]=GET
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedMethods[1]=POST
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedMethods[2]=PUT
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedMethods[3]=OPTIONS
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedMethods[4]=DELETE
spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.gateway.routes[0].id=nacos-demo
spring.cloud.gateway.routes[0].uri=lb://nacos-demo
spring.cloud.gateway.routes[0].predicates[0]=Path=/nacos_demo/**
spring.cloud.gateway.routes[0].filters[0]=StripPrefix=1
依赖参考:
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
dependencies>
⭐️注意如果有拉配置下来config必须加到要导入配置的项目
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-gatewayartifactId>
dependency>
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-gateway-spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starterartifactId>
<version>4.4.0version>
dependency>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-loadbalancerartifactId>
dependency>
dependencies>
同理拉了配置记得加上相关依赖
我用了MySQL所以要加
<dependency>
<groupId>com.mysqlgroupId>
<artifactId>mysql-connector-jartifactId>
<scope>runtimescope>
dependency>
(后续有遇到问题再添加)
声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。