Geteway

news2024/11/19 19:43:50

大家好我是苏麟今天带来Geteway.

Gateway服务网关

Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统 一的 API 路由管理方式。

官网 : spring.io/projects/spring-cloud-gateway/

网关

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

网关的功能特性

  • 路由
  • 负载均衡
  • 统一鉴权
  • 跨域
  • 统一业务处理(缓存)
  • 访问控制
  • 发布控制
  • 流量染色
  • 接口保护:
  1. 限制请求
  2. 信息脱敏
  3. 降级
  4. 限流
  5. 超时时间
  • 统一日志
  • 统一文档

架构图:

网关分为两种:

1.全局网关(接入层网关):作用是负载均衡,请求日志等,不和业务逻辑绑定.

2.业务网关(微服务层网关):会有一定逻辑,作用是将请求转发到不同的业务/项目/接口/服务

Gateway快速入门

下面,我们就演示下网关的基本路由功能。基本步骤如下:

1. 创建SpringBoot工程gateway,引入网关依赖

2. 编写启动类

3. 编写基础配置和路由规则

4. 启动网关服务进行测试

1)创建gateway服务,引入依赖

创建服务:

引入依赖:

        <!-- 网关依赖   -->
        <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>

2)编写启动类

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

3)编写基础配置和路由规则

server:
  port: 10010  # 网关 端口
spring:
  application:
    name: gateway #服务名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos 地址
    gateway:
      routes: # 网关路由配置
        - id: user-service
          #uri: http://127.0.0.0.1:8848  #路由的目的地址 http 是固定地址
          uri: lb://userservice   # 路由的目的地址 lb是负载均衡,后面跟上服务名称
          predicates: #路由断言 , 判断请求路由是否符合规则
            - Path=/user/**  # 以/user/开头的都符合规则
        - id: orderserver
          uri: lb://orderserver
          predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/order/**  # 这个是按照路径匹配,只要以/user/开头就符合要求

我们将符合 Path 规则的一切请求,都代理到 uri 参数指定的地址。

本例中,我们将 /user/** 开头的请求,代理到 lb://userservice ,lb是负载均衡,根据服务名拉取 服务列表,实现负载均衡。

4)重启测试

重启网关,访问http://localhost:10010/user/1时,符合 /user/** 规则,请求转发到uri:http://users ervice/user/1,得到了结果:

5)网关路由的流程图

整个访问的流程如下:

总结:

网关搭建步骤:

1. 创建项目,引入nacos服务发现和gateway依赖

2. 配置application.yml,包括服务基本信息、nacos地址、路由

路由配置包括:

1. 路由id:路由的唯一标示

2. 路由目标(uri):路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡

3. 路由断言(predicates):判断路由的规则

4. 路由过滤器(filters):对请求或响应做处理

更多知识全在官网,想要了解更全面更仔细去官方网站,那里不仅有小Demo还有文字讲解.

这期就到这里下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1064653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】STL详解(十一)—— unordered_set、unordered_map的介绍及使用

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

ROS机械臂开发-开发环境搭建【一】

目录 前言环境配置docker搭建Ubuntu环境安装ROS 基础ROS文件系统 bugs 前言 想系统学习ROS&#xff0c;做一些机器人开发。因为有些基础了&#xff0c;这里随便写写记录一下。 环境配置 docker搭建Ubuntu环境 Dockerfile # 基础镜像 FROM ubuntu:18.04 # 设置变量 ENV ETC…

数据结构课程设计题目——链表综合算法设计、带头双向循环链表、插入、显示、删除、修改、排序

文章目录 链表综合算法设计——校园人事信息系统1.要求2.代码实现&#xff08;以带头双向循环链表为例&#xff09;2.1基本程序结构2.2节点和链表的初始化2.3链表的插入2.4链表的显示2.5链表的删除2.6链表的修改2.7链表的排序&#xff08;仿函数实现&#xff09; 3.全部源码 链…

Arxdbg读取cad扩展属性

xdlist可以读取CAD实体属性&#xff0c;子实体的扩展属性看不到。 下载arxdbg,appload加载。 鼠标右键即可看见&#xff0c;选Entity Info。 查看xdata,dxfdata都可以看到扩展信息。

Python 无废话-办公自动化Excel修改数据

如何修改Excel 符合条件的数据&#xff1f;用Python 几行代码搞定。 需求&#xff1a;将销售明细表的产品名称为PG手机、HW手机、HW电脑的零售价格分别修改为4500、5500、7500&#xff0c;并保存Excel文件。如下图 Python 修改Excel 数据&#xff0c;常见步骤&#xff1a; 1&…

jmeter和性能测试

一。性能测试的概念 1.性能&#xff1a;就是软件质量属性中的 “ 效率 ” 特性 2.效率特性&#xff1a; 时间特性&#xff1a;指系统处理用户请求的响应时间 资源特性&#xff1a;指系统在运行过程中&#xff0c;系统资源的消耗情况 CPU 内存 磁盘IO&#xff08;磁盘的写…

鸡群优化(CSO)算法(含MATLAB代码)

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…

TCP VS UCP

程序员写网络程序&#xff0c;主要编写的应用层代码&#xff01; 真正要发这个数据&#xff0c;需要上层协议调用下层协议&#xff0c;应用层要调用传输层&#xff0c;则传输层给应用层提供一组api&#xff0c;统称为&#xff1a;soket api 基于UDP的api 基于TCP的api 这两个协…

Godot 初学

前言 因为9月份 Unity一顿安装计费的骚操作&#xff0c;导致世界开发者对于Unity 随意修改开发条例&#xff0c;追溯之前开发游戏版本感到愤怒。Unity是全球游戏使用率超过50%的引擎&#xff0c;Unity和Unreal是最主流的第三方游戏引擎。除非你是大厂可以自研引擎&#xff0c;…

阿里云服务器活动价格及配置整理表(多配置报价)

2023年阿里云服务器租用费用&#xff0c;阿里云轻量应用服务器2核2G3M带宽轻量服务器一年108元&#xff0c;2核4G4M带宽轻量服务器一年297.98元12个月&#xff0c;CS云服务器e系列2核2G配置182元一年、2核4G配置365元一年、2核8G配置522元一年&#xff0c;阿里云u1服务器2核4G、…

复习Day11:链表part04: 206. 反转链表、92. 反转链表II、25. K 个一组翻转链表、148. 排序链表

我用的方法是在leetcode再过一遍例题&#xff0c;明显会的就复制粘贴&#xff0c;之前没写出来就重写&#xff0c;然后从拓展题目中找题目来写。辅以Labuladong的文章看。然后刷题不用CLion了&#xff0c;使用leetcode自带的IDE模拟面试环境。 哈希表章节的题目思路很清晰&…

Java多线程之等待唤醒机制及案例代码演示

生产者和消费者&#xff08;等待唤醒机制&#xff09; 等待唤醒机制常见方法代码演示等待唤醒机制(阻塞队列方式实现)额外扩展 等待唤醒机制 生产者和消费者是一个十分经典的多线程协作模式 举个小栗子来说明一下消费者和生产者的等待唤醒过程: 常见方法 void wait() 当前…

因为计算机中找不到mfc140.dll无法启动修复步骤分享

mfc140.dll是Microsoft Foundation Class Library&#xff08;微软基础类库&#xff09;的一个组件&#xff0c;它是许多Windows应用程序&#xff08;尤其是使用MFC编写的程序&#xff09;所必需的动态链接库。MFC&#xff08;Microsoft Foundation Classes&#xff09;是一个用…

Pytorch笔记之分类

文章目录 前言一、导入库二、数据处理三、构建模型四、迭代训练五、模型评估总结 前言 使用Pytorch进行MNIST分类&#xff0c;使用TensorDataset与DataLoader封装、加载本地数据集。 一、导入库 import numpy as np import torch from torch import nn, optim from torch.uti…

10.5汇编语言整理

【汇编语言相关语法】 1.汇编语言的组成部分 1.伪操作&#xff1a;不参与程序的执行&#xff0c;但是用于告诉编译器程序该怎么编译 .text .global .end .if .else .endif .data 2.汇编指令 编译器将一条汇编指令编译成一条机器码&#xff0c;在内存里一条指令占4字节内存&…

c++---模板篇

1、模板 概念&#xff1a;模板就是建立通用的模具&#xff0c;大大提高复用性 特点&#xff1a; 模板不可以直接使用&#xff0c;它只是一个框架模板的通用并不是万能的 1.1、函数模板 C另一种编程思想称为泛型编程&#xff0c;主要利用的技术就是模板C提供两种模板机制&a…

数据结构与算法(四):哈希表

参考引用 Hello 算法 Github&#xff1a;hello-algo 1. 哈希表 1.1 哈希表概述 哈希表&#xff08;hash table&#xff09;&#xff0c;又称散列表&#xff0c;其通过建立键 key 与值 value 之间的映射&#xff0c;实现高效的元素查询 具体而言&#xff0c;向哈希表输入一个键…

Linux CentOS7 vim宏操作

vim的macro就是用来解决重复的问题。在vim寄存器的文章里面已经对macro有所涉及&#xff0c;macro的操作都是以文本的方式存放在寄存器中。 宏是一组命令的集合&#xff0c;应用极其广泛&#xff0c;包括MS Office中的word编辑器&#xff0c;excel编辑器和各种文本编辑器&…

Pytorch笔记之回归

文章目录 前言一、导入库二、数据处理三、构建模型四、迭代训练五、结果预测总结 前言 以线性回归为例&#xff0c;记录Pytorch的基本使用方法。 一、导入库 import numpy as np import matplotlib.pyplot as plt import torch from torch.autograd import Variable # 定义求…

ESP32/ESP8266在线刷写Sonoff Tasmota固件以及配置简要

ESP32/ESP8266在线刷写Sonoff Tasmota固件以及配置简要 &#x1f4cd;原项目Github地址&#xff1a;https://github.com/arendst/Tasmota/tree/v13.1.0&#x1f4d1;官方文档介绍&#xff1a;https://tasmota.github.io/docs/&#x1f6a9;(✨推荐方式✨)在线固件刷写地址&…