分布式(三)

news2024/11/17 21:48:07

三、API 网关详解

1. 网关及作用

主要功能:请求过滤

网关可以为我们提供请求转发、安全认证(身份/权限认证)、流量控制、负载均衡、降级熔断、日志、监控等功能。

在这里插入图片描述

2. 常见的网关系统

2.1 Netflix Zuul

(1)Zuul 是 Netflix 开发的一款提供动态路由、监控、弹性、安全的网关服务。

(2)Zuul 主要通过过滤器(类似于 AOP)来过滤请求,从而实现网关必备的各种功能。
在这里插入图片描述
(3)可以自定义过滤器来处理请求,并且,Zuul 生态本身就有很多现成的过滤器供我们使用。
如限流可以直接用国外朋友写的 spring-cloud-zuul-ratelimit (这里只是举例说明,一般是配合 hystrix 来做限流):

(4)Zuul 1.x 基于同步 IO,性能较差。Zuul 2.x 基于 Netty 实现了异步 IO,性能得到了大幅改进。

链接:
官方 Wiki
Github 地址

2.2 Spring Cloud Gateway

2.2.1 简介

(1)为了提升网关的性能,SpringCloud Gateway 基于 Spring WebFlux 。
Spring WebFlux 使用 Reactor 库来实现响应式编程模型,底层基于 Netty 实现异步 IO。

(2)不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能
例如:安全,监控/指标,和限流。

(3)Spring Cloud Gateway 和 Zuul 2.x 的差别不大,也是通过过滤器来处理请求。
不过,目前更加推荐使用 Spring Cloud Gateway 而非 Zuul,Spring Cloud 生态对其支持更加友好。

链接:
官网
Github 地址

原理及应用

详见我另一篇博客,链接:
SpringCloud之Gateway

2.3 Kong

(1)Kong 是一款基于 OpenResty 的高性能、云原生、可扩展的网关系统。

OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。

用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

(2)Kong 提供了插件机制来扩展其功能。比如、在服务上启用 Zipkin 插件

官网
Github 地址

2.4 APISIX

(1)APISIX 是一款基于 Nginx 和 etcd 的高性能、云原生、可扩展的网关系统。

(2)etcd是使用 Go 语言开发的一个开源的、高可用的分布式 key-value 存储系统,使用 Raft 协议做分布式共识。

(3)与传统 API 网关相比,APISIX 具有动态路由和插件热加载,特别适合微服务系统下的 API 管理。

(4)并且,APISIX 与 SkyWalking(分布式链路追踪系统)、Zipkin(分布式链路追踪系统)、Prometheus(监控系统) 等 DevOps 生态工具对接都十分方便。

在这里插入图片描述
(5)作为 NGINX 和 Kong 的替代项目,APISIX 目前已经是 Apache 顶级开源项目,并且是最快毕业的国产开源项目。

国内目前已经有很多知名企业(比如金山、有赞、爱奇艺、腾讯、贝壳)使用 APISIX 处理核心的业务流量。

APISIX 已经生产可用,功能、性能、架构全面优于 Kong。

链接:
官网
Github 地址

2.5 Shenyu

(1)Shenyu 是一款基于 WebFlux 的可扩展、高性能、响应式网关,Apache 顶级开源项目。
在这里插入图片描述
(2)Shenyu 通过插件扩展功能,插件是 ShenYu 的灵魂。
并且插件也是可扩展和热插拔的。不同的插件实现不同的功能。

Shenyu 自带了诸如限流、熔断、转发 、重写、重定向、和路由监控等插件。

链接:
官网
Github 地址



上一篇跳转—分布式(二)                 下一篇跳转—分布式(四)


本篇文章主要参考链接如下:

参考链接1-JavaGuide


持续更新中…

随心所往,看见未来。Follow your heart,see light!

欢迎点赞、关注、留言,一起学习、交流!

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

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

相关文章

进军存储赛道—BNB Greenfield:Web3 数据所有权和效用新标准

最近BNB Chain 自豪地宣布发布BNB Greenfield 白皮书。BNB Greenfield为Web3时代的数据引入了一个全新的结构和经济模式。现在,数据的所有权、使用权和货币化,首先对用户以及BNB Chain生态系统中的所有参与者来说是可能的。BNB Greenfield 使用 BNB 作为…

OSCP_VULHUB_symfonos-2(失败)

文章目录 前言实验攻击尝试hydra爆破ftpmetasploit工具进行SSH登录端口转发1命令注入getshell 1端口转发2提权失败总结前言 这个是练习的第5个机子。 目标地址 https://www.vulnhub.com/entry/symfonos-2,331/ 实验 1.信息收集 1.1 目标ip 1.2 开放端口 nmap -sS -sV -A …

QT入门Buttons之QCommandLinkButton、QDialogButtonBox

目录 一、QCommandLinkButton界面布局介绍 二、QCommandLinkButton基本属性介绍 三、QDialogButtonBox界面布局介绍 1、布局器中的位置及使用 此文为作者原创,转载请标明出处! 一、QCommandLinkButton界面布局介绍 一般这两个控件使用较少&#xf…

HarmonyOS/OpenHarmony应用开发-DevEco Studio 3.0与DevEco Studio 3.1版本差异

工程模板和开发语言介绍 DevEco Studio支持包括手机、平板、车机、智慧屏、智能穿戴、轻量级智能穿戴和智慧视觉设备的HarmonyOS应用/服务开发,预置了工程模板,可以根据工程向导轻松创建适应于各类设备的工程,并自动生成对应的代码和资源模板…

C生万物 | 揭开【整型提升】神秘面纱

👑作者主页:Fire_Cloud_1 🏠学习社区:烈火神盾 🔗专栏链接:C生万物 文章目录一、前言二、整型提升的意义所在三、如何进行整型提升❓四、实战演练🗡1、深剖两数求和的内部运算2、三种不同数据类…

机器学习:线性回归分析女性身高与体重之间的关系

机器学习:线性回归分析女性身高与体重之间的关系 创作不易,觉得文章不错或能帮到你学习,记得点赞 收藏哦 文章目录机器学习:线性回归分析女性身高与体重之间的关系一、实验目的二、实验原理三、实验内容四、实验环境五、实验步骤…

C++ 入门基础

✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 The longest way must have its close,the gloomiest night will wear on a morning. 最长的路也有尽头,最黑暗的夜晚也会迎来清晨。 文…

擅长做财务分析的BI软件有哪些?

财务分析是企业数据分析中的一个重要板块,所以基本上BI软件都能做基础的财务数据分析,比如说帆软、永洪、思迈特等,但要说到系统化地、高效地做企业财务分析,还是要看奥威BI软件。 之所以说BI财务分析软件看奥威BI,是…

【万文全解】Java集合源码解析【HashMap】【ArrayList】【JDK源码集合部分】

Java集合源码解析 本文主体部分是作者跟着B站韩顺平老师的课程总结而来,中间穿插自己的理解还有网上各类优质解答 第一节:集合介绍与集合体系图 集合与数组对比(引入集合的目的) 数组: 长度必须指定,一…

javaEE 初阶 — TCP 流套接字编程

文章目录1. TCP 流套接字1.1 ServerSocket API1.2 Socket API1.3 TCP中的长短连接2. TCP 版本的回显服务器3. TCP 版本的回显客户端4. 如何给多个客户端提供服务1. TCP 流套接字 TCP 不需要一个类;来表示 “TCP” 数据报。 TCP 不是以数据报为单位进行传输的&#x…

拉伯配资“十年一剑”硕果累累 我国注册制改革迈入新征程

从2013年党的十八届三中全会明确提出“推动股票发行注册制变革”,到首届进博会上宣告科创板试点注册制,再到本年2月1日全面施行股票发行注册制变革正式发动,十年风雨兼程,我国注册制逐渐从“试点”走向“全面”。 2013年11月&…

编译链接过程详解

写在前面: 大家都知道,我们在编译器中建好一个**.c或.cpp 文件**,经过编译之后就可以运行了,也就是说我们写的.c 文件最后会变成一个可执行程序,那么 .c 或者 .cpp 文件是如何变成一个可执行程序的呢? 主要…

Vue计算属性和监视属性

目录 计算属性computed 监事属性 深度监视 计算属性computed 计算属性: 定义:要用的属性不存在,要通过已有属性计算得来 2、原理:底层借助了Object.defineproperty方法提供的getter和setter 3、get函数什么时候执行? 1、初…

移动硬盘修复的有效方法,恢复移动硬盘的数据这么做!

硬盘是计算机中的存储设备,是非常重要的部分。当硬盘发生故障,很可能会导致我们电脑里面的数据丢失。所以移动硬盘发生故障,我们一定要想办法修复它。 有没有什么操作方法,我们自己也可以简单进行?移动硬盘修复其实也…

mariadb数据库删除恢复过程

不作不死,不小心使sqlyog导数据选错服务器。把生产机的数据全部删除了。可怕的数据没有做其他过多的备份,只是每天自动crontab 备份。该怎么办呢?头脑一片空白。快, 赶紧看看日备份有没有。马上切换到备份目录,喜出望外…

构建指标体系是一套数据分析的框架,比如看哪些指标,这些指标变化了就会反映什么问题,是这样的吗?

指标体系是指由若干个反映企业业务运营特征的相对独立又相互联系的统计指标所组成的有机整体。近年来,各类企业逐渐认识到业务指标的重要性,从管理者们长期关注的企业绩效考核,到用来体现信息化水平的数据可视化大屏,其背后都离不…

【IoT】寻光智能车与循迹智能车

1、寻光智能车 功能说明 智能寻光小车,智能识别光线强弱,实现小车永远向光最强的地方行走,到光源处小车自动停止。基本车体为三轮、二驱、双层机构。主控芯片采用最常用的51单片机; 驱动采用L9110驱动芯片驱动两个减速直流电机…

Veeam ONE v12 发布 (含下载) - 面向所有工作负载的 IT 监控解决方案

Veeam Availability Suite v12 请访问原文链接:https://sysin.org/blog/veeam-one-12/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 概述 保持全面可视性和控制力,以高效执行管理、优化、计划和…

域渗透漏洞

一、域内提权漏洞 (CVE-2021-42287和CVE-2021-42278) 1.1 漏洞介绍 1.1.1 CVE-2021-42278 主机账户的名称尾部应该有一个 $(即 sAMAccountName 属性),但是域控对此属性并没有任何验证来确保是否带有 $,这允许攻击者模拟域控主机账户。 1.1.2 CVE-2021-42…

python带你制作自动答题程序,速度超越98%人

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 目录前言环境使用:模块使用:自动答题思路步骤:代码展示尾语 &#x1f49d;环境使用: Python 3.8 –> 解释器 <执行python代码> Pycharm –> 编辑器 <写python代码的> 模块使用: import requests —&g…