现在学习到的组件

1.nacos:注册中心,用于微服务之间交流的第三方管家,与生产者建立心跳契约对其监听,注册中心维护一张生产者的活跃表,会将活跃表实时更新并推送给消费者。

2.feign:nacos只是对生产者进行注册,而实际的转发并不是由nacos来完成的,简单来讲nacos的主要作用就是维护一张表,这张表只写了对应的生产者微服务的名称和一些基本信息,消费者能够知道对方的名字。并且nacos还可以配合负载均衡,为消费者选取出最适合分配到的生产者。

但是——消费者调用生产者的这一个网络连接过程并不是nacos组件完成的,而是使用feign完成的!!!

3.当我们拆分完微服务后,各个微服务的端口地址五花八门,而原本单体架构前端访问后端时再不使用荷载均衡时,只会访问一个后端端口,常见的如8080端口。

现在由于微服务的拆分,导致不同的服务端口不同,前端访问后端变得困难。

所以使用网关,网关对微服务的端口进行统一管理,而前端只需要访问网管即可,解放了前端的接口传递。

网关实际上就是一个单独模块,专用于转发接口调用。

4.完整流程

4.1前端调用端口8080的userController的search方法,接口对应为:localhost:8080/users/search。
假设现在user模块有多个微服务端口分别为:8083、8084、8085。

4.2localhost:8080/users/search被网关接收,网关解析到/users路径,网关配置文件中users对应微服务名称为user-service

4.3网关通过nacos注册中心中拉取user-service的微服务列表,并使用负载均衡选取合适的服务器,假设现在选取的是注册列表中的端口号为8084的服务器,从而网关会向下转发localhost:8084/users/search

4.4  8084端口的服务器完成接口调用工作,返回网管相应数据内容

4.5  网关返回前端数据内容

5.总结:

网关关注的是前端单端口请求与后端多端口接收的不匹配问题。

feign关注后端多端口之间的调用问题。

nacos关注如何解决后端多端口之间生产者与消费者之间互相无法discover的矛盾。

上述转发过程,只需要写入到配置文件中即可,配置文件中的gateway对应网关

spring:application:name: gateway  # 应用服务名# Nacos服务发现配置cloud:nacos:server-addr: 127.0.0.1:8848config:import-check:enabled: false  # 暂时禁用导入检查discovery:enabled: truenamespace: publiccluster-name: DEFAULTgroup: DEFAULT_GROUP# 网关路由配置gateway:routes:- id: user-service           # 路由IDuri: lb://user-service     # 负载均衡目标服务名predicates:- Path=/users/**,addresses/**         # 路径匹配规则- id: trade-service           # 路由IDuri: lb://trade-service     # 负载均衡目标服务名predicates:- Path=/orders/**         # 路径匹配规则- id: pay-service           # 路由IDuri: lb://pay-service     # 负载均衡目标服务名predicates:- Path=/pay-orders/**         # 路径匹配规则- id: item-service           # 路由IDuri: lb://item-service     # 负载均衡目标服务名predicates:- Path=/items/**,/search/**- id: cart-service          # 路由IDuri: lb://cart-service     # 负载均衡目标服务名predicates:- Path=/carts/**         # 路径匹配规则

其中id对应的是路由id,指的是这个网关的一个命名,uri是需要路由到的微服务的命名(这部分写在微服务自身的application.yaml配置文件中),predicates是路径匹配算法。

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

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

相关文章

WebSocket 协议详解

WebSocket 协议详解 1. WebSocket 协议的帧数据详解 1.1 帧结构 0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1--------------------------------------------------------|F|R|R|R| opco…

【办公类-105-01】20250626 托小班报名表-条件格式-判断双胞胎EXCLE

背景需求: 今天招生主任电话问我,是否可以通过新生的EXCEL判断幼儿是双胞胎,便于分在一个班级里。 她试了EXCEL筛选升序,身份证号码排序了,但是18个数字太多,看不出“双胞胎” 于是把三个园区的名单发我来…

WPF Binding 的 Mode 属性

前言 在 WPF 中,Binding 的 Mode 属性决定了数据绑定的方向和行为。Mode 是 Binding 类的一个重要属性,它指定了数据如何在源(Source)和目标(Target)之间流动。可用的 BindingMode 枚举值有以下几种&#…

C++新纪元:深入C++11/14/17/20核心特性与名企面试精粹(完整版)--8000字硬核解析 | 腾讯/阿里/字节真题实战

一、右值引用与移动语义:性能革命的核心 面试真题(字节跳动) "如何实现高效字符串拼接?解释std::move原理及适用场景" 1. 核心概念 左值:具名对象,可取地址(如变量、函数返回值&…

网络安全之Linux提权由浅入深

前言 在渗透测试与内网攻防中,提权(Privilege Escalation)是至关重要的一环。尤其在 Linux 环境中,权限的严格划分虽然提升了系统安全性,但一旦攻击者获得了初始访问权限,他们往往会试图通过各种方式实现权…

【streamlit 动态添加/删除 输入条目items】

如何动态添加添加条目呢?类似下边的效果 pip install streamlit 代码 app.py import streamlit as stdef rule_component(st_ph: st = st):## 添加解析规则, 动态添加元素if

量学云讲堂王岩江宇龙2025年第58期视频 主课正课系统课+收评

量学云讲堂王岩江宇龙2025年第58期视频 主课正课系统课收评资源简介: 课程目录: 江宇龙课程 31枫林阳-股票走势中多空必争的关键要地(1).mp4 32枫林阳-关键要地的直观表现之画线标准.mp4 33枫林阳-提纲举领之量线学习的要点纲要.mp4 34枫林阳-主力攻…

Milvus【部署 03】Linux OpenEuler 环境在线+离线安装及卸载

在线离线安装及卸载 1. 在线安装2. 离线安装3. 卸载 1. 在线安装 [roottcloud milvus]# yum install ./milvus-2.1.4-1.el7.x86_64.rpm安装日志: OS …

< 自用文儿 在 Ubuntu 上安装 Claude Code > 发现了“京东云 JDCloude” 有国内商业云中最低的网络性能

Claude Code: 最近刷屏这个词:Claude Code 以后叫 CC,它是 Anthropic 的一款智能编程工具,几个特点: 在终端运行 像使用命令行工具一样,无需图形用户界面 GUI深度理解整个代码库 使用自然语言 让其修复 b…

Docker部署prometheus+grafana+...

Docker部署prometheusgrafana… prometheus官网 官网 https://prometheus.io/ 中文网址 https://prometheus.ac.cn/ Prometheus简介 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发。 Prometheus基…

Python爬虫实战:研究Spynner相关技术

1 引言 1.1 研究背景与意义 随着互联网的迅速发展,网页内容呈现形式日益复杂。传统的静态网页逐渐被动态网页所取代,大量内容通过 JavaScript 动态生成或 AJAX 异步加载。这使得传统爬虫(如基于 Requests 库的爬虫)难以获取完整的网页信息,因为它们只能获取页面的初始 H…

人工智能训练知识学习-TTS(智能语音合成)

人机对话——TTS(TextToSpeech) 概念: TTS技术,即文本转语音技术,是一种将文字内容转换为语音输出的技术。它通过计算机程序和算法,将文本信息转化为自然流畅的语音信号,让用户能够听到文字内…

【Java高频面试问题】JVM篇

【Java高频面试问题】JVM篇 类加载机制加载(Loading)连接(Linking)‌初始化(Initialization)‌使用(Using)与卸载(Unloading) 类加载器和双亲委派模型类加载器…

DBeaver的sql编辑器文本格式字体大小设置

DBeaver的sql编辑器文本格式字体大小设置。开始就没有找到。早上比较清醒被我发现了。记录下来

自学Java怎么入门

自学Java其实没有想象中那么难,只要找对方法,循序渐进地学习,很快就能上手。下面我结合自己的经验,给你整理一条清晰的学习路径,咱们一步步来。 一、先了解Java能做什么 在开始之前,建议你先看看Java都能…

操作系统面试知识点(1):操作系统基础

目录 1.什么是操作系统: 2.操作系统有哪些功能? 3.常见的操作系统有哪些 4.用户态和内核态 5.内核态权限这么高,为什么不还要用户态? 6.用户态和内核态是如何切换的? 7.系统调用 8,系统调用的过程 ​​​​​​​1.什么是操作系统: (1)操作系统(OS)是管理计算机软硬…

Linux 和 Windows 服务器:哪一个更适合您的业务需求?

在选择服务器操作系统时,Linux 和 Windows 服务器是最常见的两种选择。它们各有特点,适合不同的业务需求和使用环境。本文将详细分析 Linux 和 Windows 服务器的主要差异,包括成本、安全性、性能、定制化能力和用户界面等方面,帮助…

CertiK联创顾荣辉将于港大活动发表演讲,分享Web3安全与发展新视角

CertiK联合创始人、哥伦比亚大学教授顾荣辉,将于6月30日出席香港大学经管学院主办的“Web3革新与商业机遇”活动,并发表主题演讲《规模化Web3:面向全球受众的创新与安全平衡之道》。 本次活动由港大经管学院高层管理教育主办,Met…

SpringAI系列---【SpringAI如何接入阿里云百炼大模型?】

1.导言 阿里云百炼的通义千问模型支持 OpenAI 兼容接口,您只需调整 API Key、BASE_URL 和模型名称,即可将原有 OpenAI 代码迁移至阿里云百炼服务使用。 如果是要接入阿里云百炼模型,首先推荐使用Spring AI Alibaba,而不是使用Spri…

电子电气架构 --- 实时系统评价的概述

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…