spring官方gateway Spring Cloud Gateway 选择学习的版本Doc
创建父子项目
1、第一步创建父模块,父模块导入pom
<!--父模块打包方式pom-->
<packaging>pom</packaging>
<!--配置管理-->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.8.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
</properties>
<!--SpringBoot-->
<parent>
<groupId> org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
<!--SpringCloud 需要做版本的统一 官方地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、第二步创建gateway服务,这个是gateway服务的pom
<!--子模块打包方式pom-->
<packaging>jar</packaging>
<dependencies>
<!--gateway的pom-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--服务注册与发现-->
<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>
</dependencies>
3、第三步 注册到nacos注册中心,有个nacos的教程http://t.csdn.cn/dnU6r
gateway服务的application.yml配置跟bootstrap.yml,好像可以不用配application.yml,springBoot启动会加载配置文件,只要配置了远程的,就可以不用配置这个application.yml
本地application.yml
server:
port: 7000
spring:
application:
name: service-gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #Nacos注册中心地址
gateway:
discovery:
locator:
#开放服务名访问方式 true时候,可以使用地址 http://localhost:7000/service-wx/xler/wx/test1 就是直接可以通过服务名然后去定位controller地址进行访问
#false就 只能 通过配置的路由进行访问
enabled: false
lower-case-service-id: true #服务名小写
routes: #路由配置
- id : wx #指定服务id,随便取,但是不能重复
uri: lb://service-wx #去注册中心找这个服务名 后面这个就是服务的名字spring.application.name: service-gateway
predicates: #断言,匹配访问的路径
- Path=/gg/xler/wx/** #服务访问路径
filters: #过滤
- StripPrefix=1 #请求转发的时候会去掉 /gg访问路径 最终转发请求的服务地址:
globalcors: #跨域配置
cors-configurations:
'[/**]':
allowedOrigins:
- "http://127.0.0.1:8081" #允许跨域
- "http://127.0.0.1:8082"
allow-credentials: true
allowed-headers: "*"
allowedMethods: #请求方式
- GET
- POST
- DELETE
- PUT
- PATCH
- OPTIONS
- HEAD
- CONNECT
- TRACE
配置远程配置文件
spring:
main:
allow-bean-definition-overriding: true #允许bean覆盖 我也不懂
profiles:
active: dev #环境
cloud:
nacos:
discovery:
enabled: true #开启服务注册发现
server-addr: 127.0.0.1:8848 #nacos注册中心地址
group: DEFAULT_GROUP #分组
namespace: 4cfc2538-6811-4761-b3ce-2bcaa6b68d71 #命名空间
username: nacos #nacos账户密码
password: nacos
ip: 127.0.0.1 #服务器地址
config:
enabled: true # 是否开启配置中心,默认true
server-addr: 127.0.0.1:8848 #配置中心
file-extension: yaml #配置文件格式
prefix: xler-gateway #配置前缀 ,默认使用sring.application.name
group: xler #配置分组
namespace: 4cfc2538-6811-4761-b3ce-2bcaa6b68d71 #命名空间
4、第四步,创建启动类
@SpringBootApplication
@EnableDiscoveryClient 用于nacos的客户端的服务注册发现的注册
?5、第五步,启动就完事了。就注册到nacos了
6、创建其他的服务,然后注册到nacos,通过网管去访问
?
?
|