SpringCloud之GateWay组件

1.网关的作用

  1. 路由转发
    根据请求到网关的地址,将其转发到对应的服务上

  2. 过滤器
    对请求进行统一的处理

2.搭建网关服务

2.1 引入gateway依赖
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
2.2 配置(配置文件或者配置类)

配置文件

spring:
  application:
    name: GATWAY
  cloud:
    consul:
      host: localhost
      port: 8500
    gateway:
      routes:
        - id: test_order
          uri: http://localhost:9991
          predicates:
            - Path=/order/**

        - id: test_user
          uri: http://localhost:9992
          predicates:
            - Path=/user/**

routes:路由集
id:路由id
uri:要转发的uri
predicates(表明、阐述、以什么为依据):大概意思就是路由的规则
Path:路径规则,路径为规定的请求就转发

配置类

@Configuration
public class GatewayConfig{
@Bean
	public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
		return builder.routes()
			.route("user_route", r -> r.path("/user")
				.uri("http:localhost:8989"))
			.route("order_route", r -> r.path("/order")
				.uri("http:localhost:8999"))
			.build();
		}
	}

链式编程,写多个路由。
推荐是使用配置文件的方式吧。

3.实现负载均衡

以上,我们的uri都是写死的。我们知道做微服务几乎都是集群的,这样写肯定是不行的。还记得Ribbon吗?能够实现负载均衡,它是根据服务名从服务注册中心拉取该服务名的所有节点到本地然后实现负载均衡。gateway的底层是有Ribbon的,所以我们可以像使用Ribbon那样在gatway中实现负载均衡,非常简单。

spring:
  application:
    name: GATWAY
  cloud:
    consul:
      host: localhost
      port: 8500
    gateway:
      routes:
        - id: test_order
          uri: ib://ORDER
          predicates:
            - Path=/order/**

        - id: test_user
          uri: http://localhost:9992
          predicates:
            - Path=/user/**

uri: http://localhost:9992 变为 uri: ib://ORDER 即可。lb意为loadbalance(负载均衡),根据ORDER从服务注册中心拉取名为ORDER的服务列表。

4.网关的Predicate和Filter

Predicate:
分为11中,上面我们用到的Path只是一种,比如After是在某个时间之后才能访问到uri的路径。Before就是某时间之前,Between就是之间,Cookie是请求中必须有这个cookie。。。。。就不一一举例了。可去官网细看
https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories
在这里插入图片描述

Filter
Filter就更多了,有31种,这里截图部分
在这里插入图片描述AddRequestHeader是给请求添加请求头,AddRequestParamter给请求添加参数。。。。。,细看可去官网

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为了我的架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值