网关Gateway的介绍(下)
【摘要】 本文介绍了微服务中Gateway的使用,正在学习Gateway或者准备学习的大佬看过来哟
第三步,在ymal中编写配置和规则
server:
port: 10010 # 网关端口
spring:
application:
name: gateway # 服务的名称
cloud:
nacos:
server-addr: localhost:8848 # nacos的地址
gateway:
routes: # 网关路由配置
- id: user-service # 路由id,自定义,只要唯一即可
# uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
uri: lb://userservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称
predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
- Path=/user/** # 这个是按照路径匹配,只要以/user/开头就符合要求
我们将符合Path
规则的一切请求,都代理到 uri
参数指定的地址。
🍄网关入门小结
总结:
网关搭建步骤:
-
创建项目,引入nacos服务发现和gateway依赖
-
配置application.yml,包括服务基本信息、nacos地址、路由
路由配置包括:
-
路由id:路由的唯一标示
-
路由目标(uri):路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡
-
路由断言(predicates):判断路由的规则,
-
路由过滤器(filters):对请求或响应做处理
🍻断言工厂
Spring Cloud Gateway 内置了许多路由断言工厂,可以通过配置的方式直接使用,也可以组合使用多个路由断言工厂。
例如:
Path 路由断言工厂
Path 路由断言工厂接收一个参数,根据 Path 定义好的规则来判断访问的 URI 是否匹配。
```yaml
spring:
cloud:
gateway:
routes:
- id: host_route
uri: http://example.test
predicates:
- Path=/blog/detail/{segment}
Method 路由断言工厂
Method 路由断言工厂接收一个参数,即要匹配的 HTTP 方法。
spring:
cloud:
gateway:
routes:
- id: method_route
uri: http://baidu.com
predicates:
- Method=GET
Cookie路由断言工厂
通过cookie和一个正则表达式作为断言条件的路由工厂,只要满足该条件就可以访问到该地址。
spring:
cloud:
gateway:
routes:
- id: between_route # 路由 Id,唯一
uri: https://example.org # 目标 URI, 路由到微服务的地址
predicates:
- Cookie=chocolate, ch.p # 使用Cookie路由断言工厂,配置cookie,正则表达式(可以没有)
配置解读:此路由将匹配具有一个名为chocolate的cookie的请求,该cookie的值匹配ch.p正则表达式
当然断言工厂有十几个,我们只需要掌握Path这种路由工程就可以了。
也有一些其他的工厂,我们下篇文章讨论。
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起讨论🍻
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)