前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gateway网关详解_网关怎么设置才能上网

gateway网关详解_网关怎么设置才能上网

作者头像
全栈程序员站长
发布2022-11-07 16:40:10
1.6K0
发布2022-11-07 16:40:10
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

前言: 最近在学习微服务相关的知识,看了黑马的相关课程,将关于Gateway的知识又总结了一些,希望能帮到各位小伙儿们以及加深下自己的印象🎊 如果文章有什么需要改进的地方还请大佬多多指教🥂 小威先感谢大家的支持了😁

在这里插入图片描述
在这里插入图片描述

🏠个人主页:小威要向诸佬学习呀 🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉 目前状况🎉:目前大二,在一家满意的公司实习👏👏 🎁如果大佬在准备面试,可以使用我找实习前用的刷题神器哦刷题神器点这里哟 💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

牛客部分使用反馈,个人感觉还不错,帮我找到了心仪的公司,希望各位伙伴儿们通过它也能提高不少🥂🥂🥂

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文章目录

🍑网关介绍

网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。

网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层–应用层。

在这里插入图片描述
在这里插入图片描述

因此综上所述:

网关(Gateway)是将两个使用不同协议的网络段连接在一起的设备。 网关的作用就是对两个网络段中的使用不同传输协议的数据进行互相的翻译转换。

Gateway网关是我们服务的守门神,所有微服务的统一入口

🍉网关实现

在SpringCloud中网关的实现主要包括两种:gateway和zuul

Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。

🍭Gateway的使用

Gateway网关的使用步骤如下:

  1. 创建SpringBoot工程gateway,引入网关依赖
  2. 编写启动类
  3. 编写基础配置和路由规则
  4. 启动网关服务进行测试

第一步,引入依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--nacos的服务依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

第二步,编写启动类

代码语言:javascript
复制
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GatewayApplication { 
   

	public static void main(String[] args) { 
   
		SpringApplication.run(GatewayApplication.class, args);
	}
}

第三步,在ymal中编写配置和规则

代码语言:javascript
复制
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参数指定的地址。

在这里插入图片描述
在这里插入图片描述

🍄网关入门小结

总结:

网关搭建步骤:

  1. 创建项目,引入nacos服务发现和gateway依赖
  2. 配置application.yml,包括服务基本信息、nacos地址、路由

路由配置包括:

  1. 路由id:路由的唯一标示
  2. 路由目标(uri):路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡
  3. 路由断言(predicates):判断路由的规则,
  4. 路由过滤器(filters):对请求或响应做处理

🍻断言工厂

Spring Cloud Gateway 内置了许多路由断言工厂,可以通过配置的方式直接使用,也可以组合使用多个路由断言工厂。

例如: Path 路由断言工厂 Path 路由断言工厂接收一个参数,根据 Path 定义好的规则来判断访问的 URI 是否匹配。

代码语言:javascript
复制
```yaml
spring:
  cloud:
    gateway:
      routes:
        - id: host_route
    uri: http://example.test
    predicates:
      - Path=/blog/detail/{ 
   segment}

Method 路由断言工厂 Method 路由断言工厂接收一个参数,即要匹配的 HTTP 方法。

代码语言:javascript
复制
spring:
  cloud:
    gateway:
      routes:
        - id: method_route
  uri: http://baidu.com
  predicates:
    - Method=GET

Cookie路由断言工厂 通过cookie和一个正则表达式作为断言条件的路由工厂,只要满足该条件就可以访问到该地址。

代码语言:javascript
复制
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这种路由工程就可以了。 也有一些其他的工厂,我们下篇文章讨论。

在这里插入图片描述
在这里插入图片描述

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起讨论🍻 最后再次给大家安利一波牛客,点击刷题神器 注册牛客,快来和博主一起刷题吧嘿嘿嘿👏 再次感谢各位小伙伴儿们的支持🤞

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183065.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 🍑网关介绍
  • 🍉网关实现
  • 🍭Gateway的使用
  • 🍄网关入门小结
  • 🍻断言工厂
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档