gateway网关详解

gateway网关详解

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

前言:

最近在学习微服务相关的知识,看了黑马的相关课程,将关于Gateway的知识又总结了一些,希望能帮到各位小伙儿们以及加深下自己的印象🎊

如果文章有什么需要改进的地方还请大佬多多指教🥂

小威先感谢大家的支持了😁

🏠个人主页:小威要向诸佬学习呀

🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉

目前状况🎉:目前大二,在一家满意的公司实习👏👏

🎁如果大佬在准备面试,可以使用我找实习前用的刷题神器哦刷题神器点这里哟

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

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

文章目录🍑网关介绍🍉网关实现🍭Gateway的使用🍄网关入门小结🍻断言工厂🍑网关介绍网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。

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

因此综上所述:

网关(Gateway)是将两个使用不同协议的网络段连接在一起的设备。

网关的作用就是对两个网络段中的使用不同传输协议的数据进行互相的翻译转换。

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

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

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

🍭Gateway的使用Gateway网关的使用步骤如下:

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

代码语言:javascript代码运行次数:0运行复制

org.springframework.cloud

spring-cloud-starter-gateway

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

第二步,编写启动类

代码语言:javascript代码运行次数:0运行复制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代码运行次数:0运行复制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 是否匹配。

代码语言:javascript代码运行次数:0运行复制```yaml

spring:

cloud:

gateway:

routes:

- id: host_route

uri: http://example.test

predicates:

- Path=/blog/detail/{

segment}Method 路由断言工厂

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

代码语言:javascript代码运行次数:0运行复制spring:

cloud:

gateway:

routes:

- id: method_route

uri: http://baidu.com

predicates:

- Method=GETCookie路由断言工厂

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

代码语言:javascript代码运行次数:0运行复制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

📚 相关推荐

狗狗一天吃幾克才剛好?食量怎麼抓,餵食表幫你算好了!
任丘36524便利店电话

狗狗一天吃幾克才剛好?食量怎麼抓,餵食表幫你算好了!

📅 08-21 👁️ 4730
10大瘦腰習慣比節食更易堅持!飯後不久坐、早上一杯檸檬水,搭配捲腹抱膝瘦小腹更快
基本解释
365手机app

基本解释

📅 09-20 👁️ 3480
寻访土豆的故乡(探寻土豆的起源和发展历程)
亚洲365bet体育

寻访土豆的故乡(探寻土豆的起源和发展历程)

📅 07-05 👁️ 2767
小白科普:AI 到底是什么,终于有人讲清楚了
腾讯QQ如何取消关联账号
亚洲365bet体育

腾讯QQ如何取消关联账号

📅 08-13 👁️ 2308
手机杂志阅读app排行榜TOP10推荐
365手机app

手机杂志阅读app排行榜TOP10推荐

📅 09-15 👁️ 5067
【爽】开头的成语
任丘36524便利店电话

【爽】开头的成语

📅 09-13 👁️ 5074
英雄联盟edg在哪个平台直播,edg战队成员直播平台及房间号介绍