微服务·架构组件之网关

微服务·架构组件之网关

引言

微服务架构已成为构建大型和复杂应用程序的流行范式之一。在微服务架构中,通常一个系统会被拆分为多个微服务,如果

  • 客户端多次请求不同的微服务,会增加客户端代码和配置的复杂性,维护成本比较高。
  • 每个微服务可能存在不同的认证方式,客户端去调用,要适配不同的认证。
  • 存在跨域的请求,调用链有一定的相对复杂性(防火墙/浏览器不友好的协议)。
    为了解决上面的问题,微服务引入了网关的的概念,网关为微服务架构的系统提供简单、有效且统一的API路由管理,作为系统的统一入口,提供内部服务的路由中专,给客户端提供统一的服务,可以实现一些和业务没有耦合的功用逻辑,主要功能包含认证、鉴权、路由转发、安全策略、防刷、流量控制、监控日志等。

网关的角色

在微服务架构中,网关扮演者多个重要的角色

  • 路由(Routing):网关负责将传入的请求路由到适当的微服务实例,根据请求的URL或其他条件进行决策。
  • 负载均衡(Load Balancing):网关可以分发请求发到多个微服务实例,以实现负载均衡,提高系统的性能和可伸缩性。
  • 安全性(Security):网关可以处理身份验证、授权、加密和其他安全性问题,以确保只有合法的用户能够访问服务。
  • 监控与分析(Monitoring and Analytics):网关可以收集请求和响应的信息,用于监控和分析系统的性能和可用性。
  • 缓存(Caching):一些网关技术支持缓存机制,以减轻后端微服务的负载,提高响应速度。

常见的微服务网关技术

  • Netfix Zuul

    • Zuul是Netfix开源的微服务网关,具有路由、负载均衡、安全性和监控等功能。
    • 它与Eureka服务注册中心集成,可以自动路由到可用的微服务实例。
    • 配合Netfix Ribbon实现负载均衡
  • Spring Cloud Gateway

    • Spring Cloud Gateway 是Spring Cloud生态系统中的网关组件,基于Spring WebFlux构建。
    • 支持动态路由、过滤器、断路器等特性、灵活性较高。
    • 与Spring Cloud的其他组件集成,如Eureka、Consul 等。
  • Kong

    • Kong是一个开源的微服务网关和API管理层,构建在Nginx之上。
    • 提供路由、插件、认证和流量控制等功能。
    • 支持多种后端数据存储,如PostgerSQL和Cassandra。
  • Nginx

    • Nginx是一款高性能的开源反向代理服务器,也可以做微服务网关。
    • 可以通过配置实现路由、负载均衡、缓存和HTTPS终止等功能。
    • 轻量级、高性能,广泛用于生产环境。

总结与未来展望

微服务网关是构建微服务架构的关键组件,它提供了路由、负载均衡、安全性和监控等核心功能。不同的网关技术适用于不同的场景,开发者可以根据需求选择合适的技术来是想微服务的路由和管理。
随着微服务架构的不断演进,微服务网关技术也在不断改进和扩展。未来可以期待更多关于容器化、服务网格、自动化配置都能方面的创新,以进一步提高微服务架构的效率和可维护性。

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

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

相关文章

用冒泡排序完成库函数qsort的作用

Hello,今天分享的是我们用冒泡函数实现qsort,也就是快排,之前我们也讲过库函数qsort的使用方法,今天我们尝试用冒泡函数实现一下,当然我们也见过qsort,后面也会继续完善的。这几天我是破防大学生&#xff0…

Github上1.1KFork的C++笔记

编程语言(C/C) 原文链接,如果觉得本文对你有所帮助,欢迎去原地址点个Star⭐。侵删 https://github.com/linw7/Skill-Tre 目录 Chapter 1Chapter 2Chapter 3Chapter 4编程基础面向对象基础标准模板库编译及调试 内容 Chapter1:编程基础 C/…

Debian11安装PostgreSQL+PostGIS+pgRouting ,链接Navicat

船新版本,遵循官网教程 1 准备一个Debian11系统2 从官网安装Postgres2.1 安装Postgres2.2 修改Postgres密码2.3 配置Postgres远程访问 3 安装Postgis、pgRouting4 链接Navicat 1 准备一个Debian11系统 2 从官网安装Postgres 2.1 安装Postgres 1 进入Postgre的官网…

第一类曲线积分与二重积分在极坐标系下表示的区别

1.第一类曲线积分与二重积分在极坐标系下表示的区别 区别主要来源于一是曲线积分的积分区域为边界,而二重积分的积分区域为内部边界,二是极点位置选取的不同,二者共同造成在积分区域在极坐标下表示的不同,即 ρ \rho ρ是常量还是…

uboot 顶层Makefile-make xxx_deconfig过程说明三

一. uboot 的 make xxx_deconfig配置 本文接上一篇文章的内容。地址如下:uboot 顶层Makefile-make xxx_deconfig过程说明二_凌肖战的博客-CSDN博客 本文继续来学习 uboot 源码在执行 make xxx_deconfig 这个配置过程中,顶层 Makefile有关的执行思路。 …

spring boot+redis整合基础入门

文章目录 前言准备依赖项配置文件redis模板类注入设置序列化方式 实施基础字符串操作、超时设置Hash操作hash的使用场景以及优缺点 列表操作列表操作的应用场景以及优缺点 Set的基础操作Set类型的业务场景以及优缺点Demo地址 总结 前言 最近项目中有用到redis进行一些数据的缓…

导数公式及求导法则

目录 基本初等函数的导数公式 求导法则 有理运算法则 复合函数求导法 隐函数求导法 反函数求导法 参数方程求导法 对数求导法 基本初等函数的导数公式 基本初等函数的导数公式包括: C0(x^n)nx^(n-1)(a^x)a^x*lna(e^x)e^x(loga(x))1/(xlna)(lnx)1/x(sinx)cos…

Python---数据容器分类及通用操作

数据容器可以从以下视角进行简单的分类: 是否支持下标索引: 支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型 是否支持重复元素: 支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型 是否可以修改: 支持:列表、…

阿里云服务器配置怎么选择?几核几G?带宽系统盘怎么选?

阿里云服务器配置选择_CPU内存/带宽/存储配置_小白指南,阿里云服务器配置选择方法包括云服务器类型、CPU内存、操作系统、公网带宽、系统盘存储、网络带宽选择、安全配置、监控等,阿小云分享阿里云服务器配置选择方法,选择适合自己的云服务器…

C++系列-空指针访问成员函数及野指针

C系列-空指针访问成员函数 空指针空指针访问成员函数 野指针 空指针 在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。NULL指针是没有指向任何内容的指针。赋为 NULL 值的指针被称为空指针。 在大多数的操…

用selenium webdriver获取网站cookie后,实现免登录上网站

以csdn为例,代码分为两部分。 一、csdn_get_cookies.py为半手动登录网站后获取cookies 二、csdn_use_cookies.py为使用获取到的cookies免登录上网站 #获取登录cookiesfrom selenium import webdriver import jsoncsdn_driver webdriver.Chrome() url "htt…

ChatGPT OpenAI 完成Excel组合函数Vlookup+match多条件查找

ChatGPT OpenAI 现在已经助力职场办公。 我们现在有这样一个Excel需求: 根据姓名与科目查找对应的分数。可以使用Vlookup+match组合函数一起来实现 。 我们将公式复制到Excel中来进行验证。 ChatGPT生成的Excel函数公式可以直接进行使用。 更多实战内容。

Android:使用命令行发现keytool不是内部命令解决办法

一、前言:最近在搞引入高德地图的SDK,发现需要给app签名打包。记录一下。 二、当我在命令行中输入keytool的时候说keytool不是内部命令 解决方案: 找到系统属性--------高级----------点击环境变量 双击点开 找到java\jre1.8.0_202\bin新建…

CSS3技巧36:backdrop-filter 背景滤镜

CSS3 有 filter 滤镜属性,能给内容,尤其是图片,添加各种滤镜效果。 filter 滤镜详见博文:CSS3中强大的filter(滤镜)属性_css3滤镜_stones4zd的博客-CSDN博客 后续,CSS3 又新增了 backdrop-filter 背景滤镜。 backdr…

SAP SD之定义装运点OVL2

什么是装运点? 装运点是一个独立的组织实体,其中进行货物的发行和交付处理。 可以为每个订单商品确定一个装运点。 确定装运点取决于以下三个因素: 客户主记录中的运输条款和条件(运输屏幕)。 例如,公司与…

BS EN 14323:2021 室内用三聚氰胺纸贴面木基板材检测

三聚氰胺贴面纸木基板材是指未经处理的三聚氰胺纸通过粘接或者热压的方式直接覆于木质基材表面的装饰板材,通常基材为刨花板,密度板等,主要用于室内。 BS EN 14323:2021 室内用三聚氰胺纸贴面木基板材测试项目 测试项目 测试方法 外观 EN…

180B参数的Falcon登顶Hugging Face,vs chatGPT 最好开源大模型使用体验

文章目录 使用地址使用体验test1:简单喜好类问题test2:知识性问题test3:开放性问题test4:中文支持test5:问题时效性test6:学术问题使用地址 https://huggingface.co/spaces/tiiuae/falcon-180b-demo 使用体验 相比Falcon-7b,Falcon-180b拥有1800亿的参数量

程序员面试逻辑题

红白帽子推理 答案: 这个题有点像数学归纳法,就是假设有 A A A和 B B B两个人是黑色的帽子,这样的话第一次开灯, A A A看到 B B B是黑色的,其他人都是白色的,那么 A A A会觉得 B B B是那个黑色的&#xff0…

第28章_瑞萨MCU零基础入门系列教程之基于面向对象的工程结构

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…

军训场E,F

E - 这题题目超短 思路:贪心,到达n的方法有很多种,但因为n的范围为1e9,所以我们不能暴力枚举,我们贪心的想,因为我们走三步肯定是比走两步能够更快的到达n,所以我们尽可能的去先走三步&#xf…