扬州做企业网站哪家公司好/百度站长平台怎么用

扬州做企业网站哪家公司好,百度站长平台怎么用,北京做公司网站的公司,电子商务网站 整站 psd微服务架构中的API网关:Spring Cloud与Kong/Traefik等方案对比 一、API 网关的概念二、API 网关的主要功能2.1 统一入口与路由转发2.2 安全与权限控制2.3 流量管理与容错2.4 API 管理与聚合2.5 监控与日志2.5 协议转换与适配2.6 控制平面与配置管理 三、API 网关选型…

微服务架构中的API网关:Spring Cloud与Kong/Traefik等方案对比

    • 一、API 网关的概念
    • 二、API 网关的主要功能
      • 2.1 统一入口与路由转发
      • 2.2 安全与权限控制
      • 2.3 流量管理与容错
      • 2.4 API 管理与聚合
      • 2.5 监控与日志
      • 2.5 协议转换与适配
      • 2.6 控制平面与配置管理
    • 三、API 网关选型
      • 3.1 常见的 API 网关
        • 3.1.1 Nginx
        • 3.1.2 Zuul
        • 3.1.3 Spring Cloud Gateway
        • 3.1.4 Kong
        • 3.1.5 Traefik
      • 3.2 API 网关对比
    • 四、Traefik 的后端跟踪系统
      • 4.1 Jaeger
      • 4.2 Zipkin
      • 4.3 Datadog

在这里插入图片描述

一、API 网关的概念


   API 网关是一个服务器,是系统的唯一入口。

   API 网关方式的核心要点是:所有的客服端和消费端都通过统一的网关接入微服务统一的入口,协调和管理微服务之间的通信。

网关也是提供 REST/HTTP 的访问 API

二、API 网关的主要功能


2.1 统一入口与路由转发


  • 统一入口:所有外部请求必须通过网关访问后端微服务,网关成为系统的唯一入口。这隐藏了后端服务的复杂性,外部无需直接调用具体的服务实例。
  • 请求路由:根据请求的路径、参数、Header 等条件,将请求动态路由到对应的后端微服务。(例如:通过路径匹配,/api/order 路由到订单服务
  • 负载均衡:网关通常集成负载均衡策略(如轮询、权重、哈希),将流量分发到多个后端服务实例,提高系统吞吐量和可用性。

2.2 安全与权限控制


  • 身份认证与授权
    • 统一处理用户身份验证,避免每个微服务重复实现认证逻辑。
    • 通过过滤器拦截请求,校验权限(如检查 Token 有效性),未通过直接拦截。
  • 安全策略
    • 防止恶意请求(如 SQL 注入XSS 攻击)。
    • 实现黑白名单、IP 限制等安全措施。

2.3 流量管理与容错


  • 限流与降级
    • 通过熔断器(如 Hystrix )或限流算法(如令牌桶、漏桶)控制请求速率,防止系统过载。
    • 在后端服务不可用时,返回预定义的降级响应(如缓存数据或错误提示)
  • 灰度发布与 AB 测试
    • 根据用户特征(如 HeaderCookie)或流量比例,将请求路由到不同版本的服务实例,实现灰度发布或 AB 测试

2.4 API 管理与聚合


  • API 统一管理
  • 请求聚合:将多个后端服务的请求合并为一个接口,减少客户端的调用次数。例如,网关调用订单服务和用户服务,聚合结果后返回给客户端(如Fegin接口)。

2.5 监控与日志


  • 流量监控:通过监控系统可视化统计的请求QPS、响应时间、错误率等,记录请求日志。
  • 调用链追踪:通过链路追踪工具(如 ZipkinSleuth)在网关层注入 Trace ID,追踪请求的全链路调用过程。

2.5 协议转换与适配


  • 协议转换
    • 将外部的 HTTP 请求转换成内部服务的其他协议(如 gRPCDubbo),或反之。
    • 适配不同客户端的需求(如移动端需要简化响应,Web 端需要完整数据)。
  • 数据格式转换:统一处理数据格式(如 JSONProtobuf),降级后端服务的复杂性。

2.6 控制平面与配置管理


  • 动态配置:通过控制平面(如 API 管理平台)动态更新路由规则、限流策略等,无需重启网关。
  • 弹性伸缩:根据流量自动扩缩网关实例,提升系统应对突发流量的能力。

三、API 网关选型

3.1 常见的 API 网关


名称公司语言特点缺点
Nginx(2004)Nginx IncC/Lua高性能,成熟稳固门槛高,偏运维,可编程弱
Zuul1(2012)Netflix/PivotalJava成熟,简略门槛低性能个别,可编程个别
Spring Cloud Gateway(2016)PivotalJava异步,配置灵便晚期产品
Envoy(2016)LyftC++高性能,可编程 API/ServiceMesh集成门槛较高
Kong(2014)Kong IncOpenResty/Lua高性能,可编程API门槛较高
Traefik(2015)ContainousGolang云原生,可编程API/对接各种服务发现生产案例不太多

在这里插入图片描述

3.1.1 Nginx

  Nginx 是一个高性能的 HTTP 和反向代理服务器。Nginx 一方面可以做反向代理,另外一方面可以做静态资源服务器,接口使用 Lua 动态语言可以完成灵活的定制功能。

3.1.2 Zuul

  ZuulNetflix 开源的一个 API 网关组件,它可以和 EurekaRibbonHystrix 等组件配合使用。社区活跃,融合于 Spring Cloud 完整生态,是构建微服务体系前置网关服务的最佳选型之一。

  Zuul 的核心是一系列的过滤器,这些过滤器可以完成以下功能:

  • 统一鉴权 + 动态路由 + 负载均衡和压力测试
  • 审查与监控
  • 多区域弹性

Zuul 目前有两个大的版本:Zuul1Zuul2

  • Zuul1:基于 Servlet 框架构建,采用阻塞和多线程方式,一个线程处理一次连接请求,这种方式在内部延迟严重、设备故障较多情况下会引起存活的连接增多和线程增加的情况发生。
  • Zuul2:Netflix 发布的 Zuul2 有重大的更新,它运行在异步和无阻塞框架上,每个 CPU 核心一个线程,处理所有的请求和响应,请求和相应的生命周期是通过事件和回调来处理的,这种方式减少了线程数量,因此开销较小。
3.1.3 Spring Cloud Gateway

  Spring Clloud GatewaySpring Cloud 的一个全新的 API 网关项目,目的是为了替换掉 Zuul1,它基于 Spring5.0 + SpringBoot2.0 + WebFlux (基于高性能的 Reactor 模式响应式通信框架 Netty,异步非阻塞模型)等技术开发,性能高于 Zuul,官方测试,Spring Cloud Gateway 是 Zuul 的 1.6 倍,旨在为微服务框架提供一种简单有效的统一的 API 路由管理方式。

  Spring Cloud Gateway 可以与 Spring Cloud Discovery Client(如 Eureka)、RibbonHystrix 等组件配合使用,实现路由转发、负载均衡、熔断、鉴权、路由重写、日志监控等,并且 Gateway 还内置了限流过滤器,实现了限流的功能。

3.1.4 Kong

  Kong 是一款基于 OpenResty(Nginx + Lua 模块)编写的高可用、易扩展的,由 Mashape 公司开源的 API Gateway 项目。Kong 是基于 Nginx 和 Apache Cassandra 或 PostgreSQL 构建的,能提供易于使用的 RestFul API 来操作和配置 API 管理系统,所以它可以水平扩展多个 Kong 服务器,通过前置的负载均衡配置把请求均匀地分发到各个 Server,来应对大批量的网络请求。

3.1.5 Traefik

  Treakfik 是一个为了让部署微服务更加便捷而诞生的现代 HTTP 反向代理、负载均衡工具。它支持多种后台(Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Zookeeper、BoltDB、Rest API 等)来自动化、动态的应用它的配置文件设置。

重要特性:

  • 它非常快,无需安装其它以来,通过 Go 语言编写的单一可执行文件;
  • 多种后台支持:Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd;
  • 支持 Rest API、Websocket、HTTP/2、Docker 镜像;
  • 监听后台变化进而自动化应用新的配置文件配置;
  • 配置文件热更新,无需重启进程;
  • 后端断路器、负载均衡、容错机制;
  • 清爽的前端页面,可监控服务指标;

3.2 API 网关对比


KongTraefikAmbassadorTykZuul
基本主要用途企业级 API 管理微服务网关微服务网关微服务网关微服务网关
学习曲线适中simplesimple适中simple
成本开源/企业版开源开源/pro开源/企业版开源
社区star40.4k53.7K18710k13.6k
配置配置语言Admin Rest api,Text file(nginx.confg等)TOMLYAML(kubernetes annotation)Tyk REST APIRESTAPI, YAML 静态配置
配置端点类型命令式声明式声明式命令式命令式
拖拽方式yesnononono
管理模式configurabledecentralised,self-servicedecentralised,self-servicedecentralised,self-servicedecentralised,self-service
部署kubernetes适中(k8s yaml, helm chart)easyeasy适中(k8s yaml, helm chart)适中(k8s yaml, helm chart)
Cloud IAAShigheasyN/Aeasyeasy
**Private Data Center **higheasyN/Aeasyeasy
部署模式金丝雀(企业版)金丝雀金丝雀,shadow金丝雀金丝雀
statepostgres,cassandrakuberneteskubernetesredis内存文件
可扩展性扩展功能插件自己实现插件插件自己实现
扩展方法水平水平水平水平水平
功能服务发现动态动态动态动态动态
协议http,https,websockethttp,https,grpc,websockethttp,https,grpc,websockethttp,https,grpc,websockethttp,https
基于kong + nginxtraefikenvoytykzuul
ssl 终止yesyesyesyesno
websocketyesyesyesyesno
routinghost,path,methodhost,pathhost,path,headerhost,path
限流yesnoyesyes需要开发
熔断yesyesnoyes需要其他组件
重试yesyesnoyesyes
健康检查yesnonoyesyes
负载均衡算法轮询,哈希轮询,加权轮询加权轮询轮询轮询,随机,加权轮询,自定义
权限Basic Auth、HMAC、JWT、Key、LDAP、OAuth 2.0、PASETO、plus paid Kong Enterprise options like OpenID connectbasicyesHMAC、JWT、Mutual TLS、OpenID Connect、基本身份验证、LDAP、社交OAuth(例如 GPlus,Twitter,Github)和传统基本身份验证提供成程序开发实现
tracingyesyesyesyes需要其他组件
istio集成nonoyesnono
dashboardyesyesgrafana,Prometheusyesno

主要关注 Kong、Traefik 和 Zuul 即可

  • 从开源社区活跃度来看,无疑是 KongTraefik 较好;
  • 从成熟度来看,较好的是 Kong、Tyk、Traefik;
  • 从性能来看,Kong 要比其他几个领先一些;
  • 从架构优势的扩展性来看,Kong、Tyk 有丰富的插件,Ambassador也有插件但不多,而Zuul是完全需要自研,但Zuul由于与Spring Cloud深度集成,使用度也很高,近年来Istio服务网格的流行,Ambassador因为能够和Istio无缝集成也是相当大的优势。

四、Traefik 的后端跟踪系统

工具JaegerZipkinDatadogInstanaElasticHaystack
主要用途分布式追踪(APM),支持全栈监控,分析微服务延迟和依赖关系分布式追踪(APM),轻量级,适合成熟微服务架构。全栈可观测性(APM、日志、指标、安全),商业 SaaS 服务。
自动化监控(APM、日志、指标),支持 200+ 技术栈,AI 驱动根因分析。全栈可观测性(APM、日志、指标),基于 Elasticsearch 的开源/商业解决方案。NLP 检索与问答系统(非追踪系统),用于构建文档检索和语义搜索。
学习曲线中等中等中等
成本开源免费(需第三方存储)开源免费(需第三方存储)商业付费(需订阅)商业付费(需订阅)开源免费(商业版需付费)开源免费
社区star21.1k17.1k3k477.5k19.8k
配置语言YAML/CLIYAML/Java配置YAML/JSON/Cloud UI自动化配置(无手动)YAML/JSON/Kibana UIPython/JSON
部署方式Docker、Kubernetes、云服务Docker、Kubernetes、独立部署云服务、混合部署(需代理)云服务、自托管代理Docker、Kubernetes、本地部署Docker、Python 环境
可扩展性高(支持多种存储如 Cassandra/Elasticsearch,插件丰富)中(依赖自定义存储,架构较老)高(云原生扩展性强,集成丰富)高(自动适应技术变化,支持大规模环境)高(弹性扩展,支持多集群和云原生)中(依赖外部存储如 Elasticsearch/Faiss)
开发语言GoJavaGoGoGoPython
  • 轻量级 APM:Zipkin(简单快速启动)
  • 全栈可观测性:Elastic(开原生态)或 Datadog(商业 SaaS)
  • 自动化监控:Instana(AI 驱动,适合复杂环境)
  • NLP 检索系统:Haystack(需注意用途差异)

4.1 Jaeger


  Jaeger 是一款强大的开源分布式追踪系统,专门用于监控和排查基于微服务的分布式系统。借助其可扩展和灵活的架构,Jaeger 能够处理大量的数据,提供非常优秀的性能表现。

Jaeger的特点

  • 开源免费:Jaeger 是一款开源解决方案,任何人都可以免费使用。
  • 提供先进的搜索和可视化功能:帮助你了解请求的流向,并找出系统中的瓶颈或问题。
  • 支持 Elasticsearch 进行数据持久化:确保数据的稳定保存和高效查询。
  • 默认提供 Prometheus 指标:让你更方便地监控系统性能。
  • 使用 Jaeger UI,用户可以根据服务、持续时间和标签轻松过滤追踪:让你更方便地找到所需的信息。

  Jaeger 凭借其强大的功能和开放的特性,在分布式追踪领域受到了许多开发者的欢迎。从监控到排错,从可视化到过滤,Jaeger 为微服务的管理和维护提供了全方位的支持,是许多开发者不可或缺的工具之一。
在这里插入图片描述

在这里插入图片描述

4.2 Zipkin


在这里插入图片描述
在这里插入图片描述

  Zipkin 是另一种流行的开源分布式跟踪解决方案。最初由 Twitter 开发,用于收集他们的计时数据来排查延迟问题,现在由 OpenZipkin 社区维护。

Zipkin 的特点

  • 提供基于网页的用户界面以可视化追踪数据:使得数据分析更加直观便捷。
  • 允许用户根据服务名称、时间范围等进行追踪过滤:可以迅速找到你关注的部分。
  • 提供诸如依赖关系图和火焰图等可视化展示:更形象地展现系统的运作状态。
  • 支持与各种工具集成,如日志和度量平台:提供更全面的监控和分析功能。
  • 开源:开放的社区支持和免费使用。

  Zipkin 凭借其强大的可视化功能和灵活的过滤选项,在分布式追踪领域赢得了不少赞誉。不管是大公司还是小团队,都可以借助 Zipkin 更加轻松地监控和排查基于微服务的系统,了解系统的运行状况和性能表现。其开源的特性也让更多的开发者能够参与其中,共同推动这一领域的进展。

4.3 Datadog


  DataDog 是一款流行的基于云的监控平台,让你可以通过各种指标、日志和追踪来监控微服务。它实时展现了你的系统行为,确保你对系统的运行状况有清晰的了解。

DataDog的特性

  • 提供异常检测功能:可以自动通知用户系统的异常行为。
  • 支持可视化服务、服务依赖关系和位置:你可以更直观地看到系统的组成和运作方式。
  • 用户可分析追踪和深入指标:通过这些信息,可以轻松找出问题的根本原因。
  • 支持每个APM主机高达50次追踪:足够满足大部分监控需求。
  • 支持多个云支持供应商:包括 AWS、Azure 和 GCP 等。

  DataDog 以其强大的功能和灵活的应用,成为了许多企业和开发人员监控微服务的首选工具。无论是系统的实时运行情况,还是深入诊断问题,DataDog 都能提供有效的支持,让你对自己的系统有更全面、更精确的掌控。

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

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

相关文章

NewStar CTF web wp

文章目录 week1headach3会赢吗智械危机谢谢皮蛋PangBai 过家家(1) week3include meblindsql1臭皮的计算机臭皮踩踩背这照片是你吗 week4Pangbai过家家四blindsql2chocolateezcmsssezpollute隐藏的密码 weeek5pangbai过家家(5)redissqlshell臭皮吹泡泡臭皮…

Linux驱动开发-①中断②阻塞、非阻塞IO和异步通知

Linux驱动开发-①中断②阻塞、非阻塞IO和异步通知 一,中断1.中断的流程2.上半部和下半部2.1上半部2.2下半部2.2.1 tasklet2.2.2 工作队列 3.按键延时消抖中断程序 二,阻塞和非阻塞IO和异步通知1.阻塞IO1.1 常见结构11.2 常见结构2 2.非阻塞IO2.1 驱动结构…

Docker和Dify学习笔记

文章目录 1 docker学习1.1 基本命令使用1.1.1 docker ps查看当前正在运行的镜像1.1.2 docker stop停止容器1.1.3 docker compose容器编排1.1.4 docker网络[1] 进入到容器里面敲命令[2] docker network ls[3] brige网络模式下容器访问宿主机的方式 2 Dify的安装和基础使用2.1 下…

探秘Transformer系列之(16)--- 资源占用

探秘Transformer系列之(16)— 资源占用 文章目录 探秘Transformer系列之(16)--- 资源占用0x00 概述0x01 背景知识1.1 数据类型1.2 进制&换算数字进制存储度量换算 1.3 参数显存占用有参数的层无参数的层所需资源 1.4 计算量 0…

jaeger安装和简单使用

文章目录 jaeger安装和使用什么是jaegerjaeger安装 jaeger安装和使用 什么是jaeger 官网:https://www.jaegertracing.io/ Jaeger 是一个分布式追踪系统。Jaeger的灵感来自 Dapper 和 OpenZipkin,是一个由 Uber 创建并捐赠给 云原生计算基金会&#xf…

【Mybatis-plus】在mybatis-plus中 if test标签如何判断 list不为空

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

【递归,搜索与回溯算法篇】- 名词解释

一. 递归 1. 什么是递归? 定义: 函数自己调用自己的情况关键点: ➀终止条件: 必须明确递归出口,避免无限递归 ➁子问题拆分: 问题需能分解成结构相同的更小的子问题缺点: ➀栈溢出风险&#x…

大屏技术汇集【目录】

Cesium 自从首次发布以来,经历了多个版本的迭代和更新,每个版本都带来了性能改进、新功能添加以及对现有功能的优化。以下是 Cesium 一些重要版本及其主要特点: 主要版本概述 Cesium 1.0 (2012年) 初始版本发布,确立了Cesium作为…

图解AUTOSAR_CP_EEPROM_Abstraction

AUTOSAR EEPROM抽象模块详细说明 基于AUTOSAR标准的EEPROM抽象层技术解析 目录 1. 概述 1.1 核心功能1.2 模块地位2. 架构概览 2.1 架构层次2.2 模块交互3. 配置结构 3.1 主要配置容器3.2 关键配置参数4. 状态管理 4.1 基本状态4.2 状态转换5. 接口设计 5.1 主要接口分类5.2 接…

C++相关基础概念之入门讲解(下)

1. 引用 ​ int main() {const int a10;int& aaa;aa;cout<<aa<<endl; } 引用 不是新定义一个变量&#xff0c;而 是给已存在变量取了一个别名 &#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量 共用同一块内存空间&#xff08;初…

注意力机制,本质上是在做什么?

本文以自注意机制为例&#xff0c;输入一个4*4的矩阵 如下&#xff1a; input_datatorch.tensor([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ],dtypetorch.float) 得到Q和K的转置如下。 此时&#xff0c;计算QK^T ,得到如下结果 第一行第一个位置就是第一条样本和第…

Windows搭建免翻墙的BatteryHistorian

文章参考 GitCode - 全球开发者的开源社区,开源代码托管平台 免翻墙的BatteryHistorian主要原理&#xff1a;修改go源码 1.安装Java环境 1.点击下载 Java JDK&#xff0c;并安装,一路next 2.java -version 检验是否安装成功 2.安装Git工具 1、点击下载 Git&#xff0c;并…

WRF/Chem 模式技术解读:为大气污染治理提供有力支撑

技术点目录 第一部分、WRF-Chem模式应用案例和理论基础第二部分、Linux环境配置及WRF-CHEM第三部分、WRF-Chem模式编译&#xff0c;排放源制作第四部分、WRF-Chem数据准备&#xff08;气象、排放、初边界条件等&#xff09;&#xff0c;案例实践第五部分、模拟结果提取、数据可…

ccfcsp2701如此编码

//如此编码 #include<iostream> using namespace std; int main(){int n,m;cin>>n>>m;int a[21],b[21],c[21];for(int i1;i<n;i){cin>>a[i];}c[0]1;for(int i1;i<n;i){c[i]c[i-1]*a[i];}b[1](m%c[1])/c[0];int s1,s20;for(int i2;i<n;i){s2s2…

74HC04(反相器)和74HC14(反相器、施密特触发器)的区别

74HC04和74HC14的具体区别详解 同样具有反相器功能&#xff0c;你知道74HC04和74HC14的具体区别吗&#xff1f; 74HC04 对于74HC04很好理解&#xff0c;输入低电平&#xff0c;输出高电平&#xff1b;输入高电平&#xff0c;输出低电平。 建议操作条件&#xff1a; 下图是TI的…

第十四次CCF-CSP认证(含C++源码)

第十四次CCF-CSP认证 卖菜满分思路 买菜满分思路 再卖菜满分题解&#xff08;差分约束&#xff09;solution 1(枚举 correct but 超时)solution 2(正解) 卖菜 题目链接 满分思路 就是模拟一下这个调整第二天菜价的过程&#xff0c;其中对于两种只有一个邻居的情况下做出调整&…

CCBCISCN复盘

AWDP – ccfrum 自己搭了一下环境, 复现一下这道题目, 之前比赛的时候完全没想到这个漏洞要怎么打, 修也不知道要怎么修, 就仅仅是对用户名的账号和密码进行了一下过滤, 完全没起到作用, 唉, 实在太菜 如果想要尝试复现的话可以尝试拉取这个镜像, 我打完之后就直接把这个容器给…

VS010生成可由MATLAB2016调用的DLL文件方法

亲测实用&#xff0c;不用配置杂七杂八的依赖项 1&#xff1a;新建Win32的DLL输出项目 2&#xff1a;修改为release模式 3&#xff1a;添加calc.cpp文件&#xff0c;即要导出的函数myadd&#xff1a; #include "calc.h" __declspec(dllexport) int myadd(int a,in…

优选算法系列(3.二分查找 )

目录 一.二分查找&#xff08;easy&#xff09; 题目链接&#xff1a;704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; 代码&#xff1a; 二.在排序数组中查找元素的第⼀个和最后⼀个位置&#xff08;medium&#xff09; 题目链接&#xff1a;34.…

阿里云服务器部署 五 Nginx + springboot

Nginx的部分配置 1. 基础容灾配置&#xff08;被动健康检查&#xff09; 在 upstream 块中&#xff0c;通过 max_fails 和 fail_timeout 参数定义故障转移规则&#xff1a; 在 upstream 块中&#xff0c;通过 max_fails 和 fail_timeout 参数定义故障转移规则&#xff1a;…