当前位置: 首页 > java >正文

微服务-19.什么是网关

一.网关

曾经我们的项目是单体项目,前端只需要请求8080端口,就可以获取所有需要的数据和服务并进行渲染。

但是拆分成微服务后,会面临几大问题:

1.但是现在我们将该单体项目拆分成了微服务项目,每个项目都有自己独立的端口号,那么前端在发起请求时如何知道去请求哪一个微服务,又如何知道请求的端口号是多少呢?

除了上述描述的问题外,当我们将微服务部署到线上时,其ip地址和端口号又会发生变化,那么前端又该如何获取到呢?

2.很多微服务都需要用户登录,用户登录需要jwt令牌,难道每个服务中都要编写一份用户登录校验的逻辑吗?这未免十分麻烦.

此外如果给每个微服务都下发了密钥,那么会大大加大密钥泄露的风险.

综上问题,我们引入了网关的概念.

我们有了网关之后,所有的请求都发给网关地址,由网关去寻找需要转发的路由,这就是网关的路由转发功能.

此外在转发时,网关会自己做负载均衡,从而将多实例部署的集群优势发挥到最大,避免出现所有请求都打到一个服务器上的情况.

那么网关如何知道各个微服务的情况呢?那就要用到之前我们讲过的注册中心.

此外在请求网关时会进行身份校验,从而解决用户登录校验以及jwt令牌携带和密钥泄露的问题.

有了网关,后端对于前端来说就是一个黑盒,这样会提高前端的开发体验,对于前端来说和单体架构没什么区别.

当前网关实现方法有很多,我们主要采用第一种:Spring Cloud Gateway.

http://www.xdnf.cn/news/18715.html

相关文章:

  • AI重塑跨境电商:选品成功率提升53%+物流效率加快34%,多语种运营成破局关键
  • 试析微剧《云端爱人》:AI时代的数字爱情寓言与情感觉醒
  • AI Agent与生成式AI双驱动:AI如何重塑商业格局并创造千亿级增量价值
  • Node【文件+模块化+对象】详讲:
  • 如何根据NTP协议报文的第一个字节来判断协议版本和处理模式?
  • 【CV】OpenCV①——OpenCV常用模块
  • 数学建模-线性规划(LP)
  • HbuilderX下载与安装
  • MATLAB GUI 设计入门:用 Guide 工具快速搭建交互界面
  • (LeetCode 每日一题) 1493. 删掉一个元素以后全为 1 的最长子数组 (双指针)
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十八) 使用表格
  • 【分布式中间件】Kafka 核心配置深度解析与优化指南
  • 【数据结构与算法】并查集
  • 当GitHub“断网”:从应急到终极方案,手把手搭建永不宕机的代码协作体系
  • LLM 中增量解码与模型推理解读
  • 包装类 抽象类 内部类 接口
  • Flink Slot 不足导致任务Pending修复方案
  • VirtualBox 中安装 Ubuntu 22.04
  • 基于Java、GeoTools与PostGIS的对跖点求解研究
  • 如何快速对接印度股票市场数据API?完整开发指南
  • Solidity学习笔记
  • MATLAB实现CNN-GRU-Attention时序和空间特征结合-融合注意力机制混合神经网络模型的风速预测
  • AI Agent全栈开发流程推荐(全栈开发步骤)
  • Kubernetes v1.34 前瞻:资源管理、安全与可观测性的全面进化
  • 【和春笋一起学C++】(三十五)类的使用实例
  • 1.Spring Boot:超越配置地狱,重塑Java开发体验
  • 逆光场景识别率↑76%!陌讯多模态融合算法在手机拍照识别的落地实践​
  • centos安装jenkins
  • 校园跑腿小程序源码 | 跑腿便利店小程序 含搭建教程
  • bun + vite7 的结合,孕育的 Robot Admin 【靓仔出道】(十八)