赞
踩
1.网关子模块的application.yml配置文件如下:
eureka: client: serviceUrl: #服务注册地址 defaultZone: http://localhost:8088/eureka/ instance: #服务实例名称 instance-id: gateway-9527 #是否暴露服务ip地址 prefer-ip-address: true server: #运行端口 port: 9527 spring: application: #服务注册名称 name: service-gateway cloud: gateway: discovery: locator: enabled: true # 开启从注册中心动态创建路由的功能,利用微服务名称进行路由 routes: - id: service-provider-getNumber # 路由的id,没有规定规则但要求唯一,建议配合服务名 #匹配后提供服务的路由地址 # uri: http://localhost:8001 uri: lb://service-provider #匹配后提供服务的路由地址 predicates: - Path=/provider/getNumber/** # 断言,路径相匹配的进行路由(注意**为通配符) - id: service-provider-getInfo # uri: http://localhost:8001 uri: lb://service-provider #匹配后提供服务的路由地址 predicates: - Path=/provider/getInfo #断言,路径相匹配的进行路由 # - After=2020-10-30T15:00:22.432+08:00[Asia/Shanghai] #在该时区后发生 # - Before=2020-10-30T16:00:22.432+08:00[Asia/Shanghai] #在该时区前发生 # - Between=2020-10-30T15:00:22.432+08:00[Asia/Shanghai],2020-10-30T16:00:22.432+08:00[Asia/Shanghai] #在两个时区内发生 # - Cookie=username,lisi #携带cookies信息,相当于键值对,username为key,lisi为value # - Cookie=username,\d+ #携带cookies信息,相当于键值对,username为key,\d+为value,是一个正则表达式,表达为正数 # - Header=id,001 #携带header信息,相当于键值对,id为key,001为value # - Header=id,\d+ #携带header信息,相当于键值对,id为key,\d+为value,是一个正则表达式,表达为正数 # - Host=**.somehost.org,**.anotherhost.org #host匹配,**为通配符 # - Method=GET,POST #允许的请求方法 # - Query=number,abc #带查询条件,第一个是查询参数,第二个是可选的值 # - Query=number,\d+ #带查询条件,第一个是查询参数,第二个是可选的正则表达式
2.服务提供端8001控制器代码如下:
3.curl是什么?
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,http请求指的是客户端向服务端的请求消息,http请求主要分为get或post请求两种,在linux测试环境中,可以通过curl或wget命令和模拟http请求。通俗的来说就是类似于postman接口工具一样能够发送接口请求。
path是断言最常见的方式,它主要是通过路径来控制是否通过并进行路由访问。
application.xml配置图如下:
启动服务并通过curl访问,符合路径规则成功访问,否则访问失败:
after后跟的是一个时区时间,表示的是当前系统时间要在该时区时间后,才能通过并进行路由访问。
我们先建立一个输出当前时区时间的测试类:
public class test {
public static void main(String[] args) {
ZonedDateTime zonedDateTime=ZonedDateTime.now();
//输出时区时间
System.out.println(zonedDateTime);
}
}
输出如下:
所以我们在application.yml文件中配置如下:
启动服务并通过curl访问,符合要求访问成功:
before和after一样,后面跟的也是一个时区时间,表示的是当前系统时间要在该时区时间前,才能通过并进行路由访问。
application.yml文件中配置如下:
启动服务并通过curl访问,符合要求访问成功:
between后面跟的也是时区时间,但是参数为两个,第一个参数为更早一点的时间,第二个参数为更晚一点的时间,中间用逗号隔开,表示的是当前系统时间要在这两个时区时间内,才能通过并进行路由访问。
application.yml文件中配置如下:
启动服务并通过curl访问,符合要求访问成功:
带cookie信息,后面跟两个参数,相当于键值对,第一个参数为key,第二个参数为value,第二个参数可以是字符串或者是正则表达式。
当value为字符串时,application.yml文件中配置如下:
启动服务并通过curl访问,带有cookie信息username=lisi成功访问,否则访问失败:
当value为正则表达式时,application.yml文件中配置如下:
启动服务并通过curl访问,带有cookie信息username的值为正数成功访问,否则访问失败:
带header头信息,后面跟两个参数,相当于键值对,第一个参数为key,第二个参数为value,第二个参数可以是字符串或者是正则表达式。
当value为字符串时,application.yml文件中配置如下:
启动服务并通过curl访问,带有header信息id:001成功访问,否则访问失败:
当value为正则表达式时,application.yml文件中配置如下:
启动服务并通过curl访问,带有header信息id为正数成功访问,否则访问失败:
带host信息,参数为主机地址,可带多个参数,中间用逗号隔开,若匹配才能通过并进行路由访问。
application.yml文件中配置如下:
启动服务并通过curl访问,符合host主机地址匹配的成功访问,否则访问失败:
规定请求方式,参数为请求方式,可带多个请求方式,中间用逗号隔开。
application.yml文件中配置如下:
启动服务并通过curl访问,符合规定的请求方式访问成功,否则访问失败:
带查询条件,后面跟一个或者两个参数,参数为两个时相当于键值对,第一个参数为key,第二个参数为value,第二个参数可以是字符串或者是正则表达式。
当value为字符串时,application.yml文件中配置如下:
启动服务并通过curl访问,符合查询条件number=abc则访问成功,否则访问失败:
当value为正则表达式时,application.yml文件中配置如下:
启动服务并通过curl访问,符合查询条件number为正数则访问成功,否则访问失败:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。