软件系统开发定制网关Gateway的介绍与使用

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

🏠个人主页:
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉:目前大二,在一家满意的公司实习👏👏

🎁如果大佬在准备面试,可以使用我找实习前用的刷题神器哦
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

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



文章目录

🍑介绍

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

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

因此综上所述:

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

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

🍉网关实现

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

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

🍭Gateway的使用

Gateway网关的使用步骤如下:

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

第一步,引入依赖

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

第二步,编写启动类

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class GatewayApplication {	public static void main(String[] args) {		SpringApplication.run(GatewayApplication.class, args);	}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

第三步,在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/开头就符合要求
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

我们将符合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 是否匹配。

```yamlspring:  cloud:    gateway:      routes:        - id: host_route    uri: http://example.test    predicates:      - Path=/blog/detail/{segment}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

spring:  cloud:    gateway:      routes:        - id: method_route  uri: http://baidu.com  predicates:    - Method=GET
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

spring:cloud:gateway:routes:- id: between_route # 路由 Id,唯一uri: https://example.org # 目标 URI, 路由到微服务的地址predicates:- Cookie=chocolate, ch.p # 使用Cookie路由断言工厂,配置cookie,正则表达式(可以没有)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

配置解读:此路由将匹配具有一个名为chocolate的cookie的请求,该cookie的值匹配ch.p正则表达式

当然断言工厂有十几个,我们只需要掌握Path这种路由工程就可以了。
也有一些其他的工厂,我们下篇文章讨论。

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

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发