幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

API网关技术选型看这就够了,yyds!

  小主是10年开发架构管理经验,专注硬核文章输
  1API网关基础
  1。1什么是API网关
  API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。
  API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、协议转换、限流熔断、静态响应处理。
  API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供RESTHTTP的访问API。
  1。2网关的主要功能
  微服务网关作为微服务后端服务的统一入口,它可以统筹管理后端服务,主要分为数据平面和控制平面:数据平面主要功能是接入用户的HTTP请求和微服务被拆分后的聚合。使用微服务网关统一对外暴露后端服务的API和契约,路由和过滤功能正是网关的核心能力模块。另外,微服务网关可以实现拦截机制和专注跨横切面的功能,包括协议转换、安全认证、熔断限流、灰度发布、日志管理、流量监控等。控制平面主要功能是对后端服务做统一的管控和配置管理。例如,可以控制网关的弹性伸缩;可以统一下发配置;可以对网关服务添加标签;可以在微服务网关上通过配置Swagger功能统一将后端服务的API契约暴露给使用方,完成文档服务,提高工作效率和降低沟通成本。
  路由功能:路由是微服务网关的核心能力。通过路由功能微服务网关可以将请求转发到目标微服务。在微服务架构中,网关可以结合注册中心的动态服务发现,实现对后端服务的发现,调用方只需要知道网关对外暴露的服务API就可以透明地访问后端微服务。负载均衡:API网关结合负载均衡技术,利用Eureka或者Consul等服务发现工具,通过轮询、指定权重、IP地址哈希等机制实现下游服务的负载均衡。统一鉴权:一般而言,无论对内网还是外网的接口都需要做用户身份认证,而用户认证在一些规模较大的系统中都会采用统一的单点登录(SingleSignOn)系统,如果每个微服务都要对接单点登录系统,那么显然比较浪费资源且开发效率低。API网关是统一管理安全性的绝佳场所,可以将认证的部分抽取到网关层,微服务系统无须关注认证的逻辑,只关注自身业务即可。协议转换:API网关的一大作用在于构建异构系统,API网关作为单一入口,通过协议转换整合后台基于REST、AMQP、Dubbo等不同风格和实现技术的微服务,面向WebMobile、开放平台等特定客户端提供统一服务。指标监控:网关可以统计后端服务的请求次数,并且可以实时地更新当前的流量健康状态,可以对URL粒度的服务进行延迟统计,也可以使用HystrixDashboard查看后端服务的流量状态及是否有熔断发生。限流熔断:在某些场景下需要控制客户端的访问次数和访问频率,一些高并发系统有时还会有限流的需求。在网关上可以配置一个阈值,当请求数超过阈值时就直接返回错误而不继续访问后台服务。当出现流量洪峰或者后端服务出现延迟或故障时,网关能够主动进行熔断,保护后端服务,并保持前端用户体验良好。黑白名单:微服务网关可以使用系统黑名单,过滤HTTP请求特征,拦截异常客户端的请求,例如DDoS攻击等侵蚀带宽或资源迫使服务中断等行为,可以在网关层面进行拦截过滤。比较常见的拦截策略是根据IP地址增加黑名单。在存在鉴权管理的路由服务中可以通过设置白名单跳过鉴权管理而直接访问后端服务资源。灰度发布:微服务网关可以根据HTTP请求中的特殊标记和后端服务列表元数据标识进行流量控制,实现在用户无感知的情况下完成灰度发布。流量染色:和灰度发布的原理相似,网关可以根据HTTP请求的Host、Head、Agent等标识对请求进行染色,有了网关的流量染色功能,我们可以对服务后续的调用链路进行跟踪,对服务延迟及服务运行状况进行进一步的链路分析。文档中心:网关结合Swagger,可以将后端的微服务暴露给网关,网关作为统一的入口给接口的使用方提供查看后端服务的API规范,不需要知道每一个后端微服务的Swagger地址,这样网关起到了对后端API聚合的效果。日志审计:微服务网关可以作为统一的日志记录和收集器,对服务URL粒度的日志请求信息和响应信息进行拦截。2API网关选型
  2。1常用API网关
  先简单看一下市面上常用的API网关:
  Nginx
  Nginx是一个高性能的HTTP和反向代理服务器。Nginx一方面可以做反向代理,另外一方面可以做静态资源服务器,接口使用Lua动态语言可以完成灵活的定制功能。
  Nginx在启动后,会有一个Master进程和多个Worker进程,Master进程和Worker进程之间是通过进程间通信进行交互的,如图所示。Worker工作进程的阻塞点是在像select()、epollwait()等这样的IO多路复用函数调用处,以等待发生数据可读写事件。Nginx采用了异步非阻塞的方式来处理请求,也就是说,Nginx是可以同时处理成千上万个请求的。
  Zuul
  Zuul是Netflix开源的一个API网关组件,它可以和Eureka、Ribbon、Hystrix等组件配合使用。社区活跃,融合于SpringCloud完整生态,是构建微服务体系前置网关服务的最佳选型之一。
  Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能:统一鉴权动态路由负载均衡压力测试审查与监控:与边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。多区域弹性:跨越AWSRegion进行请求路由,旨在实现ELB(ElasticLoadBalancing,弹性负载均衡)使用的多样化,以及让系统的边缘更贴近系统的使用者。
  Zuul目前有两个大的版本:Zuul1和Zuul2
  Zuul1是基于Servlet框架构建,如图所示,采用的是阻塞和多线程方式,即一个线程处理一次连接请求,这种方式在内部延迟严重、设备故障较多情况下会引起存活的连接增多和线程增加的情况发生。
  Netflix发布的Zuul2有重大的更新,它运行在异步和无阻塞框架上,每个CPU核一个线程,处理所有的请求和响应,请求和响应的生命周期是通过事件和回调来处理的,这种方式减少了线程数量,因此开销较小。
  SpringCloudGetWay
  SpringCloudGateway是SpringCloud的一个全新的API网关项目,目的是为了替换掉Zuul1,它基于Spring5。0SpringBoot2。0WebFlux(基于性能的Reactor模式响应式通信框架Netty,异步阻塞模型)等技术开发,性能于Zuul,官测试,SpringCloudGateWay是Zuul的1。6倍,旨在为微服务架构提供种简单有效的统的API路由管理式。
  SpringCloudGateway可以与SpringCloudDiscoveryClient(如Eureka)、Ribbon、Hystrix等组件配合使用,实现路由转发、负载均衡、熔断、鉴权、路径重写、志监控等,并且Gateway还内置了限流过滤器,实现了限流的功能。
  Kong
  Kong是一款基于OpenResty(NginxLua模块)编写的高可用、易扩展的,由Mashape公司开源的APIGateway项目。Kong是基于NGINX和ApacheCassandra或PostgreSQL构建的,能提供易于使用的RESTfulAPI来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
  Kong主要有三个组件:KongServer:基于Nginx的服务器,用来接收API请求。ApacheCassandraPostgreSQL:用来存储操作数据。Kongdashboard:官方推荐UI管理工具,也可以使用restfull方式管理adminapi。
  Kong采用插件机制进行功能定制,插件集(可以是0或N个)在API请求响应循环的生命周期中被执行。插件使用Lua编写,目前已有几个基础功能:HTTP基本认证、密钥认证、CORS(CrossOriginResourceSharing,跨域资源共享)、TCP、UDP、文件日志、API请求限流、请求转发以及Nginx监控。
  Kong网关具有以下的特性:可扩展性:通过简单地添加更多的服务器,可以轻松地进行横向扩展,这意味着您的平台可以在一个较低负载的情况下处理任何请求;模块化:可以通过添加新的插件进行扩展,这些插件可以通过RESTfulAdminAPI轻松配置;在任何基础架构上运行:Kong网关可以在任何地方都能运行。您可以在云或内部网络环境中部署Kong,包括单个或多个数据中心设置,以及public,private或inviteonlyAPIs。
  Traefik
  Trfk是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台(Docker,Swarm,Kubernetes,Marathon,Mesos,Consul,Etcd,Zookeeper,BoltDB,RestAPI,file)来自动化、动态的应用它的配置文件设置。
  重要特性:它非常快,无需安装其他依赖,通过Go语言编写的单一可执行文件;多种后台支持:Docker,Swarm,Kubernetes,Marathon,Mesos,Consul,Etcd;支持支持RestAPI、Websocket、HTTP2、Docker镜像;监听后台变化进而自动化应用新的配置文件设置;配置文件热更新,无需重启进程;后端断路器、负载均衡、容错机制;清爽的前端页面,可监控服务指标。
  关于Traefik的更多内容,可以查看官网:https:traefik。cn
  2。2API网关对比
  上面是网关对比截图,偷个懒,大家主要关注Kong、Traefik和Zuul即可:从开源社区活跃度来看,无疑是Kong和Traefik较好;从成熟度来看,较好的是Kong、Tyk、Traefik;从性能来看,Kong要比其他几个领先一些;从架构优势的扩展性来看,Kong、Tyk有丰富的插件,Ambassador也有插件但不多,而Zuul是完全需要自研,但Zuul由于与SpringCloud深度集成,使用度也很高,近年来Istio服务网格的流行,Ambassador因为能够和Istio无缝集成也是相当大的优势。
  下面是其它网友的思考结论,可供参考:性能:NginxLua形式必然是高于Java语言实现的网关的,Java技术栈里面Zuul1。0是基于Servlet实现的,剩下都是基于webflux实现,性能是高于基于Servlet实现的。在性能方面我觉得选择网关可能不算那么重要,多加几台机器就可以搞定。可维护性和扩展性:NginxLua这个组合掌握的人不算多,如果团队有大神,大佬们就随意了,当没看到这段话,对于一般团队来说的话,选择自己团队擅长的语言更重要。Java技术栈下的3种网关,对于Zuul和SpringCloudGetway需要或多或少要搞一些集成和配置页面来维护,但是对于Soul我就无脑看看文章,需要哪个搬哪个好了,尤其是可以无脑对接Dubbo美滋滋,此外Soul2。0以后版本可以摆脱ZK,在我心里再无诟病,我就喜欢无脑操作。高可用:对于网关高可用基本都是统一的策略都是采用多机器部署的方式,前面挂一个负载,对于而外需要用的一些组件大家注意一下。3基于Traefik自研的微服务网关
  这个是我司自研的微服务网关,基于Traefik进行开发,下面从技术选型、网关框架、网关后台、协议转换进行讲解,绝对干货!
  3。1技术栈选型Traefik:一款开源的反向代理与负载均衡工具,它最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。traefik较为轻量,非常易于使用和设置,性能比较好,已在全球范围内用于生产环境。Etcd:一个Go言编写的分布式、高可用的一致性键值存储系统,用于提供可靠的分布式键值存储、配置共享和服务发现等功能。(更多内容可以查看文章肝了一个月的ETCD,从Raft原理到实践)Go:并发能力强,性能媲美C,处理能力是PHP的4倍,效率高,语法简单,易上手,开发效率接近PHP。
  3。3网关框架
  整个网关框架分为3块:网关后台(halfe和haladmin):用于应用、服务和插件的配置,然后将配置信息发布到ETCD;Traefik:读取ETCD配置,根据配置信息对请求进行路由分发,如果需要鉴权,会直接通过halagent模块进行统一鉴权。鉴权完毕后,如果是Http请求,直接打到下游服务,如果是Grpc和Thrift协议,会通过halproxy模块进行协议转换。协议转换模块:读取ETCD配置,对Traefik分发过来的请求,进行Grpc和Thrift协议转换(更多内容可以查看文章RPC框架:从原理到选型,一文带你搞懂RPC),并通过服务发现机制,获取服务下游机器,并通过负载均衡,将转换后的数据打到下游服务机器。
  3。4网关后台
  主要由3大模块组成:应用:主要包括应用名、域名、路径前缀、所属组、状态等,比如印度海外商城、印度社区;服务:主要包括服务名、注册方式、协议类型、所属组、状态等,比如评论服务、地址服务、搜索服务。插件:主要包括插件名称、插件类型、插件属性配置等,比如路径前缀替换插件、鉴权插件。
  一个应用只能绑定一个服务,但是可以绑定多个插件。通过后台完成网关配置后,将这些配置信息生成Config文件,发布到ETCD中,Config文件需要遵循严格的数据格式,比如Traefix配置需要遵循官方的文件配置格式,才能被Traefik识别。
  3。5协议转换模块
  halproxy模块是整个微服务网关最复杂,也是技术含量最高的模块,所以给大家详细讲解一下。
  问题引入
  在讲这个模块前,我们先看下面几个问题:当请求从上游的trafik过来时,需要知道访问下游的机器IP和端口,才能将请求发送给下游,这些机器如何获取呢?有了机器后,我们需要和下游机器建立连接,如果连接用一次就直接释放,肯定对服务会造成很大的压力,这就需要引入Client缓存池,那这个Client缓存池我们又该如何实现呢?最后就是需要对协议进行转换,因为不同的下游服务,支持的协议类型是不一样的,这个网关又是如何动态支持的呢?
  实现原理
  我们还是先看一下halproxy内部有哪些模块,首先是Resolver模块,这个模块的是什么作用呢?这里我简单介绍一下,目前公司内部通过服务获取到机器列表的方式有多种,比如MIS平台、服务树等,也就是有的是通过平台配置的,有的是直接挂在服务树下,无论哪种方式,我们都通过服务名,通过一定的方式,找到该服务下面所有的主机。
  所以Resolver模块的作用,其实就是通过服务名,找到该服务下的所有机器的IP和服务端口,然后持久化到内存中,并定时更新。
  协议模块就是支持不同的协议转换,每个协议类型的转换,都需要单独实现,这些协议转换,无非就是先通过机器IP和端口初始化Client,然后再将数据进行转换后,直接发送到下游的机器。
  最后就是连接池,之前我们其实也用到go自带的pool来做,但是当对pool数据进行更新时,需要加锁,所以性能一直起不来,后来改成了环形队列,然后对数据的操作全部通过原子操作方式,就实现了无锁操作,大大提高的并发性能。
  头条创作挑战赛
  关注小姐姐不糊涂,美女姐姐带脱单致富!

zara是哪个国家的品牌zara是西班牙的品牌,zara的定价略低于商场里的品牌女装,而它的款式色彩特别丰富。ZARA特别受大众欢迎,设计师品牌的优异设计价格却更为低廉,超越了美国的GAP、瑞典的Ha……阿悠悠十首经典歌曲阿悠悠歌曲(原创翻唱歌曲)1、阿悠悠十首经典歌曲:第1首《念旧》、第2首《旧梦一场》、第3首《一生与你擦肩而过》、第4首《你若三冬来》、第5首《人为情叹》、第6首《无味》,第7首《默契告别》,第8首《悠……传送门RTX12月8日发售DLSS3特性展示英伟达宣布《传送门RTX》将于12月8日正式发售,并发布了一段在DLSS3加持下游戏的性能展示,该作将以免费DLC的形式提供给所有《传送门》玩家,支持中文。《传送门RTX……独行侠vs骑士!东契奇一雪前耻!再战骑士!独行侠和骑士的比赛移师到了骑士队的主场克利夫兰。经历了上一场90105的溃败,赛后拿下30分5篮板6助攻的东契奇也十分懊恼!米切尔在上一场比赛中,骑士队靠……长大后才知道,哪有完美妈妈大家好,我是萌妈!前阵子看到一个问题:哪些事,长大后才知道?突然之间,我就想起了外婆。1小时候,我妈一直对外婆诸多抱怨。说她偏心小姨,主动提前退休,好让小姨能……张艺兴抖音很火的歌曲张艺兴抖音很火的歌曲名叫《猜不透》,这是一首非常火的抒情DJ舞曲,歌词的旋律朗朗上口。不过,《猜不透》这首歌曲的原版是一首抒情歌曲,是歌手丁当演唱的。但如今这首歌在抖音再次大火……小河淌水是云南哪个地方的民歌小河淌水是云南弥渡的一首经典民歌。歌曲《小河淌水》由尹宜公创作于1947年,被西方音乐节誉为东方小夜曲。据悉,黄虹、朱逢博、龚琳娜、谭晶等歌唱家都曾演唱过该歌曲。1小河淌……你的爱会将我灌醉我没有所谓是什么歌你的爱会将我灌醉我没有所谓是歌曲《DearJohn》中的歌词,比莉演唱的歌曲,收录在专辑《傻瓜就是我》中。小编还是在抖音上听的一段歌词:你的爱会将我灌醉,我没有所谓,太过清醒怎……你莫走歌曲原唱你莫走歌曲原唱是山水组合(2007年成立组合,山水组合成员许勇、舒维),舒维作曲,许勇作词,讲真!《你莫走》这首歌曲唱得真好听。歌曲《你莫走》在2020年4月29日发行的……最近网络上很火的歌曲2020最近网络上很火的歌曲2020:《水星记》、《侧脸》、《预谋》、《出山》、《彩蝶飞bai飞》、《最近》、《渡我不渡她》、《浪子bai回头》、《Shaw》、《你笑起来真好看》、《公……有哪些好听的励志歌曲前十名?有哪些好听的励志歌曲前十名?推荐10首励志歌曲:《相信自己》、《一个人的坚强》、《从头再来》、《我相信》、《我的未来不是梦》、《阳光总在风雨后》、《爱拼才会赢》、《飞的更高》、……琉璃美人煞原著小说皓凤是怎么死的琉璃美人煞原著小说皓凤是悲愤而死的。琉璃美人煞中皓凤是点晴谷的女弟子,离泽宫宫主跟皓凤发生了关系,生下了司凤。皓凤回到点睛谷以后受不了别人的指指点点,悲愤而死,而禹司凤就……
百草清香味的女孩名字,每每读过,沁人心脾春随香草千年艳,人与梅花一样清子墨老师为女宝宝起名的时候非常喜欢和花卉植物相关联,从自然美景中发掘起名的灵感。一个如花似朵的好名字,每每读过,仿佛百草清香之味,心中的美好……肉食主义和素食主义者,哪个更长寿?专家说出答案,早了解早受益有的朋友说随着时间的流逝,到一定的年龄就应清淡饮食,不适合再吃大鱼大肉,避免给身体带来不必要的负担,还有些无肉不欢的则朋友表示吃肉才能补充能量,更加的长寿。关于长期食用肉……家门口的风景一春日生活打卡季这二年的疫情防控,每一步都走的艰难,生活无形之中造成不少压抑,但是好在家乡有让人放松的风景,随着春天到来,春暖花开时节,满地的青草树林油绿绿的往上冒,小野花一点一……神舟十三号返回时间8小时,俄罗斯联盟号只需4小时,有差距吗?2022年4月16日中午时分,神舟十三号3名航天员按照计划,顺利完成所有空间站任务,乘坐载人飞船与空间站分离,最后经过约8个小时的时间,安全返回地面,创造了中国航天员持续在太空……医院不愿开的15种中成药,堪称家庭健康守护神,价格便宜好用1、头发油得快,头皮屑增多头皮痒滋阴养血、祛风活络,止痒除脂生发片适应症脂溢性脱发,头皮瘙痒,落屑,油脂分泌过多症2、脑力劳动过度,面黄无气色,总感觉乏力益气补血,……天琴计划前两个阶段取得超预期成果在轨运行期间还获得全球重力场来源:央视新闻客户端近日,记者从中山大学获悉,2022年3月,天琴一号卫星再次传来喜讯。它在轨运行期间还获得全球重力场数据。这是我国首次使用国产自主卫星测得的全球重力场数……散文秋天来去,凡是过往,皆为序章作者:子墨时间,把大半个秋天揉碎,季节便已经到了尾声。一直盼着这个秋天能有不一样的风景,而秋风轻描淡写地吹过,落叶飘零,洒了几处风景,一切如常,美丽依旧安好。……一条正版Lighting线,苹果挣多少钱?欧盟终于在8日拍板,决议在2024年12月28日之后所有在欧盟成员国内销售的新手机都必须使用TypeC连接埠。除了手机之外,这个法案还将适用于平板电脑、数位相机、耳机和手持电玩……华为Mate60曝光,支持5G300倍数码变焦,教你做高端机今年9月初的时候,华为刚推出了自己的新机mate50系列。然后又相继推出了官方重制版的mate40pro5G,到11月还有新款女性折叠屏手机要发布。还没等大家喘口气,华为Mat……相机比较Pixel7Pro与iPhone14ProMax谷歌于10月推出了Pixel7Pro,这是其最新的高端旗舰智能手机。Pixel7Pro是在苹果推出的新iPhone14ProMax几周后问世的,所以我们想比较两款智能手机的摄像……吃一口秋日大海的丰饶,这座浙东名城的滋味现在正好保国寺;新能源图虫创意东海小海鲜已全面攻占全国人民的餐桌,但哪里的滋味都没有在地美!金秋时节,去宁波吃海鲜的时候到了!虽然从不是网红打卡地,但除了坐拥天然渔港,除了……华为P60Pro开启161TB大存储,鸿蒙3。0坐镇现在回头去看,华为也曾在国内市场确立了霸主地位,曾经在中国智能手机市场的份额做到了33,等于OV的总和,同比和环比都在快速增长,而且在国际市场的增幅还比国内大,当时的华为可谓是……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网