Gateway-路由-规则配置

1.路由

路由是指网络设备(如路由器、交换机、或软件)根据一张路径表(路由表),为数据包选择一条从源地址到目标地址的传输路径的过程。它就像快递配送系统,查看地址并决策下一步往哪里送”,该过程就是"路由"

1.1 核心职责与功能

1. 请求映射与分发 (The Map & Dispatcher)

这是路由最根本、最核心的职责。

  • 是什么:根据预先定义的规则,将一个输入的请求(无论是IP数据包还是HTTP请求)精确地映射并分发到对应的目标或处理单元上。
  • 怎么做:
    • 网络层:查看IP包头的目标IP地址,查询路由表,决定从哪个物理接口转发出去。
    • 应用层/API网关:查看HTTP请求的URL路径和方法(GET/POST等),将其分发给相应的控制器(Controller)函数或微服务。
    • 前端:根据浏览器地址栏的URL路径,决定渲染哪个视图(View)或组件(Component)。
  • 类比:公司的总机接线员,根据你要找的部门名称,把你的电话转接到对应的分机上。
2. 路径选择与优化 (The Pathfinder)

在网络层路由中,这一功能至关重要。

  • 是什么:为数据包选择一条从源到目的地的最佳路径。
  • 怎么做:
    • 路由协议(如OSPF、BGP)会动态地学习网络拓扑结构,计算不同路径的“成本”(基于跳数、带宽、延迟等因素)。
    • 维护一张路由表,其中包含到达各个网络的最佳路径(下一跳)。
    • 在出现网络故障或拥堵时,能够自动选择备用路径,确保网络韧性。
  • 类比:地图导航软件(如高德、Google Maps),为你规划出最快、最短或最经济的路线,并在遇到堵车时重新规划。
3. 隔离与安全 (The Security Guard)

路由提供了最初的、基于路径的隔离和安全检查点。

  • 是什么:通过路由规则,实现流量的逻辑隔离和初步安全过滤。
  • 怎么做:
    • 网络ACL:在路由器上设置访问控制列表,例如“拒绝所有从A网段发往B网段的流量”。
    • API网关:可以将管理接口(如 /actuator)的路由与对外API的路由隔离开,并对不同路由实施不同的认证策略。
    • VLAN间路由:在不同虚拟局域网(VLAN)之间进行路由,既实现了通信,又保持了广播域的隔离。
  • 类比:小区的大门保安,只允许业主进入相应的单元楼(路由到正确目的地),而将闲杂人等拒之门外(丢弃非法请求)。
4. 抽象与解耦 (The Translator)

在现代软件开发中,路由提供了强大的抽象能力。

  • 是什么:将对内部实现的依赖转变为对稳定接口(URL路径)的依赖。
  • 怎么做:
    • 后端:用户只需要记住 /users 这个端点就能获取用户信息,而无需知道背后是哪个服务器、哪个函数在处理。即使后台服务重构、更换编程语言,只要端点不变,客户端就无需修改。
    • 前端:URL路径 /about 对应“关于我们”页面,无论这个页面背后的组件代码如何变化,这个链接始终有效。
    • API网关:可以将内部复杂的微服务结构(如 user-service:8080, order-service:8081)抽象成统一的、对外友好的API路径(如 /api/v1/users, /api/v1/orders)。
  • 类比:餐厅的菜单。顾客只需点“宫保鸡丁”(URL路径),而不用关心它是哪个厨师(后端服务)、在哪个厨房(服务器)做的。
5. 负载均衡 (The Traffic Cop)

通常与路由紧密结合的功能,尤其是在网关和现代网络设备中。

  • 是什么:将到达同一目的地的流量,分摊到多个相同的处理单元上。
  • 怎么做:
    • API网关:定义一条路由规则 path: /user/**,指向后端3个用户微服务实例。网关会将请求以轮询、随机等策略分发到这些实例上,避免单个实例过载。
    • 网络层:ECMP(等价多路径路由)可以将去往同一目标的流量,通过多条不同的网络链路同时传输。
  • 类比:银行开放多个窗口办理同类业务,大堂经理将顾客引导到人最少的窗口。
6. 流量控制与治理 (The Flow Regulator)

这是路由在微服务架构中的高级功能。

  • 是什么:基于路由对特定类型的流量实施策略。
  • 怎么做:
    • 灰度发布/金丝雀发布:将带有特定Header(如 version: canary)的请求路由到新版本的服务,而其他请求依然路由到旧版本服务。
    • 限流与熔断:对匹配特定路由(如 /api/expensive-operation)的请求进行速率限制。如果该路由对应的服务不可用,则快速熔断,返回错误,避免雪崩效应。
    • A/B测试:将一部分用户流量路由到A版本UI,另一部分路由到B版本UI。

2.配置路由

创建并编写application-route.yml路由配置文件

补充application.yml文件(包含route):

为gateway模块下的pom文件添加负载均衡依赖

为service-order模块下的OrderController类添@RequestMapping("/api/order")注解

3.测试路由

通过访问我们之前写过的readDb接口来测试路由是否配置成功

启动GatewayMainAppincation和任意一个Order微服务

浏览器访问localhost/api/order/readDb,浏览器和idea控制太输出以下信息,说明路由配置成功

4.总结

路由的核心职责是作为一个智能的决策点,通过一套规则系统,高效、可靠、安全地将请求指引到其正确的目的地,并在此过程中赋予系统灵活性、可扩展性和可维护性。

核心职责

网络设备 (路由器)

后端/API网关

前端框架 (React Router等)

请求映射与分发

根据目标IP查表转发

根据URL路径分发到服务/控制器

根据URL渲染对应组件

路径选择与优化

核心功能,动态选择最佳路径

不常用

不涉及

隔离与安全

通过ACL过滤网络流量

认证、授权、CORS、IP黑白名单

路由守卫(拦截未登录访问)

抽象与解耦

隐藏内部网络结构

隐藏微服务架构,提供统一API

将URL与组件解耦

负载均衡

支持(如ECMP)

核心功能,分发到服务实例

不涉及

流量控制与治理

策略路由(Policy-Based Routing)

核心功能,限流、熔断、灰度发布

不涉及

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

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

相关文章

BP神经网络多输入多输出回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

该MATLAB代码实现了一个基于前馈神经网络的回归预测模型,并结合SHAP(Shapley Additive exPlanations)值分析进行特征重要性评估。

【51单片机单按键控制2个LED循环闪烁】2022-12-7

缘由--CSDN问答 #include "reg52.h" sbit LED1P1^0; sbit LED2P1^5; sbit anjnP3^2; void main() {unsigned char H0,L0,Ys0;LED1LED20;while(1){if(anjn0&&Ys0){if(L>3)L0;while(anjn0);}if(L0)LED1LED20;//0表示亮1表示熄else if(L1){LED11;LED20;}else…

RustFS企业级高可用部署全指南:多活架构与跨数据中心实战

作为一名深耕分布式存储多年的架构师,我在金融、AI和物联网领域多次成功落地RustFS高可用集群。本文将分享如何构建99.95%可用性的RustFS企业级部署方案,涵盖从单数据中心到多活架构的全场景实践。 一、高可用架构设计核心 RustFS的高可用性建立在分布式…

leetcode算法题记录:

14、最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入:strs ["flower","flow","flight"] 输出:"fl"示例 2&…

HarmonyOS 应用开发深入浅出:基于 Stage 模型与 ArkUI 的声明式开发实践

好的,请看这篇关于 HarmonyOS 应用开发中 Stage 模型与 ArkUI 声明式开发实践的技术文章。 HarmonyOS 应用开发深入浅出:基于 Stage 模型与 ArkUI 的声明式开发实践 引言 随着 HarmonyOS 的不断发展,其应用开发范式也经历了重大的演进。从…

web服务解析案例

题目 模拟一个基于 DNS(域名系统)和 Nginx 的 Web 服务架构。 整体是模拟从用户输入域名,经 DNS 解析找到 Web 服务器,再由 Web 服务器(Nginx)提供内容的完整 Web 服务流程。 主机规划主机名ip地址软件说明…

揭示电解液与界面奥秘,理论计算赋能水系电池创新

揭示电解液与界面奥秘,理论计算赋能水系电池创新随着全球对高安全、低成本储能需求的激增,水系电池成为了下一代电池技术的重要候选者。然而,其性能瓶颈,如循环寿命、能量密度等,深深根植于复杂的电解液化学和电极-电解…

xv6实验:Ubuntu2004 WSL2实验环境配置(包括git clone网络问题解决方法)

基本配置参考MIT6.S081 Ubuntu22.04 WSL2实验环境配置,wsl安装配置参考本栏的另一篇文章WSL2(ubuntu20.04)vscode联合开发(附迁移方法) 如执行: git clone git://github.com/mit-pdos/xv6-riscv.git出现错误,或者无法clone情况,可以挂一个代理,然后按如…

reversed()方法

在 Python 中,reversed() 是一个内置函数,用于返回一个反向迭代器对象。这个函数可以处理多种序列类型的数据,如列表、元组、字符串、范围对象等,通过它可以方便地实现序列元素的反向遍历。下面从基本语法、适用对象、使用示例等方…

根据文本区域`textarea`的内容调整大小`field-sizing:content`

field-sizing:content 新属性,可以让 文本域textarea 根据输入的内容自动调整大小, 无需使用javascript See the Pen 根据文本区域textarea的内容调整大小field-sizing:content by liu874396180 ( liu874396180) on CodePen.

Python3练习题

上一节中全面讲解了基础知识,为了巩固知识点,当然最好的方法就是练习了。 练习 1:变量类型转换与算术运算 需求:接收用户输入的两个数字(可能是整数或字符串格式),转换为浮点数后计算 “幂运算、…

Motioncam Color S + 蓝激光:3D 视觉革新,重塑工业与科研应用新格局

在工业自动化、科研探索及智能检测等前沿领域,对物体进行高精度、高速度且稳定可靠的三维成像,始终是推动技术进步与效率提升的关键诉求。过往的 3D 成像设备,常因精度欠佳、对复杂材质适应性差、难以应对动态场景等局限,在实际应…

用html5写一个第一视角的摩托车开车游戏,画上摩托车把手,把手两侧放上可操控方向的按钮,再加上,前进和减速的按钮

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>第一视角摩托车</title><style>html…

SpringMVC 系列博客(一):基础概念与注解开发入门

目录 一、引言 二、MVC 模式&#xff1a;SpringMVC 的设计基石 2.1 MVC 三大组件 2.2 主流 MVC 框架对比 2.3 MVC 模式的核心优势 三、SpringMVC 框架&#xff1a;是什么&#xff1f;为什么学&#xff1f; 3.1 什么是 SpringMVC&#xff1f; 3.2 为什么要学 SpringMVC&a…

Java 字符串操作教程:三个任务完整复现与解析

这次是完成一些小任务来试试身手&#xff0c;免得生疏&#xff1a; 编写程序&#xff0c;使用charAt和length方法&#xff0c;将字符串"HelloWorld"拆分为"Hello"和"World"两个子串并输出。 设计一个方法&#xff0c;利用indexOf和lastlndexOf&a…

向量技术研究报告:从数学基础到AI革命的支柱

1. 向量的数学本质与历史演变 1.1 核心定义与数学表示 向量是同时具有大小&#xff08;Magnitude&#xff09;和方向&#xff08;Direction&#xff09;的量&#xff0c;在数学上被严格定义为向量空间中的元素。与仅有大小的标量&#xff08;Scalar&#xff09;不同&#xff0c…

Qt QHorizontalStackedBarSeries详解

1、概述QHorizontalStackedBarSeries 是 Qt Charts 模块中的一个类&#xff0c;用于创建水平堆叠条形图。它继承自 QAbstractBarSeries 类&#xff0c;允许将多个数据系列堆叠在一起显示&#xff0c;每个条形由多个部分组成&#xff0c;这些部分共同构成一个完整的条形&#xf…

《股票智能查询与投资决策辅助应用项目方案》

前引&#xff1a;本股票智能查询与投资决策辅助应用通过整合多源金融数据&#xff0c;运用量化分析 机器学习技术&#xff0c;为普通投资者提供全方位股票信息服务和个性化投资建议。系统不仅解决了传统工具 “数据分散、分析复杂” 的问题&#xff0c;更通过人性化交互和直观…

从零开始构建Kubernetes Operator:一个完整的深度学习训练任务管理方案

从零开始构建Kubernetes Operator&#xff1a;一个完整的深度学习训练任务管理方案一、引言二、为什么需要Operator&#xff1f;1. Controller vs Operator&#xff1a;本质区别2. 有状态服务 vs 无状态服务的挑战三、项目架构设计3.1整体架构图3.2核心组件4.核心实现解析1. CR…

第二十二篇|新世界语学院教育数据深度解析:学制函数、能力矩阵与升学图谱

第二十二篇&#xff5c;新世界语学院教育数据深度解析&#xff1a;学制函数、能力矩阵与升学图谱 系列主题&#xff1a;500所日本语言学校结构数据工程 关键词&#xff1a;新世界语学院、东京新宿、学制函数建模、JLPT能力矩阵、升学网络、教育数据工程 一、合规与法人建模&…