微服务实战系列之Gateway

news2024/10/6 12:31:07

前言

人类世界自工业革命以来,无论从金融、货币、制度,还是科技、资源、社会各个方面,都发生了翻天覆地的变化。物质极大丰富,从而也推动了科技的极速发展。当计算机问世也仅仅不到80年,而如今我们的生活处处有它的影子时,我们该如何获得解放或者更进一步呢?

“微服务实战系列”中,博主已完成了以下组件的介绍:

  • 微服务实战系列之Sentinel
  • 微服务实战系列之Token
  • 微服务实战系列之Nacos

当我们准备向客户提供一套微服务时,应该还需哪些组件为此保驾护航呢?今天我们继续拉新,那就是网关(Gateway)。

今日话题,正式begging…


名词解释

首先,博主带着大家,对网关的“前世今生”进行一帧一帧的回放。

Q:什么是网关

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

简而言之,网关可以理解为一个已屏蔽了异构网络差异的服务。既然是服务,那就有血有肉的。那么,主要作用有哪些呢?

1. 负载均衡
2. 服务路由
3. 统一流量
4. 身份认证

当然还有其他的“组织”,暂且不表。我们主要了解一下以上4部分即可。
在这里插入图片描述

主要功能

1.负载均衡LB

当我们提到LB,首先会想到什么呢?Nginx?F5?Gateway?还是其它?这就看企业自身的经济实力了。选择了开源,就应该承担开源的经济性所带来的风险;选择了付费,自然能够享受“金钱”所带来的快乐。
LB可以实现流量分摊,最终保障服务的高可用性和可靠性。
在这里插入图片描述

2.服务路由Router

Router?自然可以联想到路由器。它的价值是以一个“跳板”的形象而存在的。如果不理解,此刻,可以想想路由器是怎么工作的。

3.统一流量Flow

在微服务场景中,服务要么作为消费者consumer存在,要么作为提供者provider存在,或者二者皆具。当离开了网关时,我们该如何统一协调流量IO呢?如何统计流量情况呢?各位盆友,答案是太难太难了。
显然你需要从零构建相关的功能,非一日之功。
在这里插入图片描述

4.身份认证Auth

当一个公司的系统应用多了,如何使用一组账号密码完成“通关”?是逐门逐户挨个敲门好呢,还是去统一的身份登记处去登记好呢?答案显而易见,网关就可以承担这个角色。
在这里插入图片描述
好了,聊了这么多,是不是对网关已经有了初步的掌握?接下来我们看微服务中如何使用网关。

应用实践

在微服务中,我们的网关选择多种多样,有Nginx、Zuul、Springcloud Gateway等等。今天博主以当前业界最常用的网关Springcloud Gateway举例。
鉴于SpringCloud Gateway的相关知识和使用说明已遍布于互联网的各个角落,那么博主这里不再赘述。
也正因互联网教会了我们“拿来主义”,从而让我们能够及时快速地更新自己的知识库。这里推荐一篇博文:https://blog.csdn.net/a1036645146/article/details/106383883。

结语

今天到此为止,“微服务实战系列”已向各位盆友分享了4个组件,每个组件皆身怀绝技,难道又要全剧终了? 让我们后会有期!

在这里插入图片描述

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

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

相关文章

阿里云ECS11月销量王 99元/年

这一波好像真没得说,老用户居然都有份,买来练习、测试冒似已经够了! 阿里云ECS11月销量王 99元/年 2核2G 3M固定带宽不限流量,新老同享,新购、续费同价,开发必备! 活动规则 云服务器ECS 云创季…

前端调试只会console.log()?

前言 相信大家在日常开发中调试代码是必不可少的步骤,毕竟谁也不能保证代码不出问题,总得debug一下,输出信息看看数据有没有问题。是不是习惯性console.log(‘XXX’)或者debugger呢。而JavaScript中的console对象提供了丰富的方法用于更灵活…

JAVA小游戏 “拼图”

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下: package heima; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import …

io多路复用:select、poll和epoll

1、为什么使用多路复用: 1.1单线程BIO监听socket 多路复用一般用于网络io当中,提到网络io我们肯定能想到socket。如果我们想要一个线程单纯的用向下文的方式监听很多个socket看他是否有事件发生,那这样是不可行。 但上一个socket1没有可读事…

关于2023年编程语言使用排行我的看法

一、2022、2023年编程语言使用排行榜 从这个表格中,我们可以看到Python在两次调查中都排第一。对这件事情,很多人有了不同的看法。一个小粉丝问我,凭什么、又是为什么。下面,我展开我的理解。 二、Python为什么排第一&#xff1f…

[C/C++] 数据结构 LeetCode:用队列实现栈

题目描述: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元…

【半监督学习】CNN与Transformer的结合

本文介绍了几篇结合使用CNN和Transformer进行半监督学习的论文,CNN&Trans(MIDL2022),Semi-ViT(ECCV2022),Semiformer(ECCV2022). Semi-Supervised Medical Image Seg…

ComText让机器人有了情节记忆

为了让人类与机器人更好地交流,MIT 计算机科学与人工智能实验室的研究员开发了一个名为 ComText 的程序。这款程序给机器人增加了情节记忆,让它们能够接受更加复杂的命令。目前,他们已经在机器人 Baxter 上测试了程序。 机器人没有情景化的记…

.babyk勒索病毒解析:恶意更新如何威胁您的数据安全

导言: 在数字时代,威胁不断进化,其中之一就是.babyk勒索病毒。这种病毒采用高级加密算法,将用户文件锁定,并要求支付赎金以获取解密密钥。本文91数据恢复将深入介绍.babyk勒索病毒的特点、如何应对被加密的数据&#…

Spring Framework IOC依赖查找 - 按名称查找解析

IoC按名称查找共分为三类: 按名称按类型按集合 按名称查找 在Spring Framework中,实时加载和延迟加载是指在容器启动时是否立即实例化bean的不同策略。下面我们将分别介绍这两种加载方式及其应用场景。 tips: 当涉及到懒加载和延时加载时&#xff0…

vue3的Watch使用详解

vue官网提到: watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组: 1.监听单个Ref 2.监听一个getter函数 当然只修x或者y其中一个的值,…

阿里AoneFlow分支管理

分支模式 1.TrunkBased模式 工作方式 TrunkBased 模式是持续集成思想所崇尚的工作方式,它由单个主干分支和许多发布分支组成,每个发布分支在特定版本的提交点上从主干创建出来,用来进行上线部署和 Hotfix(补丁)。 …

类和对象(8):explicit,static成员,友元,内部类

一、explicit class Date { public:Date(int year 2023, int month 1, int day 1):_year(year),_month(month),_day(day){}private:int _year;int _month;int _day; };int main() {// Date d1(1); // 这是正常初始化Date d1 1;return 0; }不妨猜测一下,d1的初始…

算法设计与分析复习--动态规划

文章目录 上一篇动态规划性质矩阵连乘问题凸多边形最优三角部分最长公共子序列0-1背包问题下一篇 上一篇 算法设计与分析复习–递归与分治(二) 动态规划性质 与分析法类似:将原问题分解为子问题 不同点:不是通过递归的方式&…

pytest测试框架介绍(1)

又来每天进步一点点啦~~~ 一、Pytest介绍: pytest 是一个非常成熟的全功能的Python测试框架; pytest 简单、灵活、易上手; 支持参数化 能够支持简单的单元测试和复杂的功能测试,可以做接口自动化测试(pytestrequests&…

【Qt开发流程之】窗口部件

qt类关系图 创建Qt项目时,发现提供的窗体默认 基类有:QMainWindow、QDialog、QWidget这三种。 之后,你会发现,这3中窗体在UI交互中,用的也是最多的。 以下是Qt类关系图: 基础窗口控件QWidget 由上图可以…

分享禁止Win10更新的两种方法

深恶痛绝 Windows更新简直就是毒瘤,总是在某些不需要的时候提示更新,而且关闭服务后总有办法重启。老是关不掉。 如果每次都是正常更新,好像也没啥所谓,但是总有那么一两次会蓝屏、黑屏、开不了机…… 52出品 下面是吾爱社区找…

设计模式(二)-创建者模式(2-0)-简单工厂模式

一、简单工厂模式定义 客户端不需要关注创建实例的过程。于是需要通过工厂模式,要把创建对象过程和使用对象进行分离。所以客户端只要使用对象即可,而创建对象过程由一种类来负责,该类称为工厂类。 由于创建实例的方式是在静态方法里实现的…

数睿通2.0数据接入、数据开发、系统权限、集群监控全面升级

引言 数睿通 2.0 数据中台迎来了11月份的更新,感谢大家的支持,本次更新主要包括以下内容: 数据库支持 MongoDB数据接入支持 MongoDB,支持自定义 SQL 采集,支持停止运行中的任务数据生产支持 FlinkJar 任务&#xff0…

线性变换功能块S_RTI工程上的主要应用

西门子S_RTI模拟量转换功能块算法公式和代码介绍请参考下面文章链接: PLC模拟量输出 模拟量转换FC S_RTI-CSDN博客文章浏览阅读5.3k次,点赞2次,收藏11次。1、本文主要展示西门子博途模拟量输出转换的几种方法, 方法1:先展示下自编FC:计算公式如下:intput intput Real IS…