微服务架构中API网关的角色?

微服务架构中API网关的角色?,第1张

“当你想到网关的时候,你通常会想到一个集中的层,一个额外的跳在网络上处理附加的功能。但这并不一定是真的,”Palladino上周在洛杉矶举行的2017年MesosCon上发表的讲话。网关还可以提供一种有效的方式来处理跨微服务之间的通信。他说:“你也可以在现有的微服务上运行Kong,摆脱额外的跳跃,减少延迟。”



在过去的10年里,回龙观电脑培训认为API一直是一种受欢迎的通信交互方式,Docker使其易于设置微服务架构,其中应用程序和服务是由较小的可交换组件组成。但这些组件之间需要一种方式进行发现与调用。这就是API网关的作用。

API网关“可以成为一个抽象层它位于这些微服务中每个请求的访问路径上,”Palladino说道。

网关巩固了通往系统常用功能的所有路径,比如身份验证或者服务发现,通过插件都能被网关识别。“插件是一种有效的中间件功能你能动态应用于所有的微服务上,”他讲到。

API网关可以聚合服务请求和这些特性。客户端可以做出一个响应,网关可以将其分解为多个请求,节省了客户端自身调用的带宽。网关同样还可以跟踪这些请求。

当一个组织开始把一个单体应用拆分为微服务时,网关可以将对客户端的影响最小化。“网关就像装载单体应用前的一个窗帘。客户端只会处理网关,而你可以在窗帘后面解耦你的单体应用,不必担心更新你的客户端,”他说道。

他说:“当你没掌控你的客户端的时候这个特别有用”。

传统上,API网关在组织网络的边缘上被使用,处理的流量大部分来自于单体应用和外部客户端之间的交互。然而微服务架构将大部分的流量转移到内部网络,因为不同的微服务之间要进行交互。“你可以有外部的客户端使用案例,但这成为了当前消费微服务的众多客户端之一。”

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)TCP Gateway。

物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)

NioEventLoop 是 Netty 的 Reactor 线程,其角色:

基于Netty构建TCP网关的长连接容器,作为网关接入层提供服务API请求调用。

客户端通过域名+端口访问TCP网关,域名不同的运营商对应不同的VIP,VIP发布在LVS上,LVS将请求转发给后端的HAProxy,再由HAProxy把请求转发给后端的Netty的IP+Port。

LVS转发给后端的HAProxy,请求经过LVS,但是响应是HAProxy直接反馈给客户端的,这也就是LVS的DR模式。

其中步骤一至步骤九是指 Netty 服务端的创建时序,步骤十至步骤十三是 TCP 网关容器创建的时序。

Window 地址 // C:WindowsSystem32driversetchosts

添加 127001 iot-openicloudcom

位置: comibyteiottestserverTestTcpServer

位置: comibyteiottestclientTcpClient

更多内容:>网关品牌排行榜一——华为
华为技术有限公司是一家生产销售通信设备的民营通信科技公司,于1987年正式注册成立,总部位于中国深圳市龙岗区坂田华为基地。华为的产品主要涉及通信网络中的交换网络、传输网络、无线及有线固定接入网络和数据通信网络及无线终端产品,为世界各地通信运营商及专业网络拥有者提供硬件设备、软件、服务和解决方案。华为于1987年在中国深圳正式注册成立。华为的产品和解决方案已经应用于全球170多个国家,服务全球运营商50强中的45家及全球1/3的人口。
网关品牌排行榜二——锐捷
锐捷网络,中国网络解决方案领导品牌。自2000年成立以来,锐捷一直扎根行业、深入场景应用进行解决方案设计和创新,并利用云计算、SDN、移动互联、大数据、物联网等新技术为各行业用户提供端到端解决方案,助力全行业数字化转型升级。
锐捷网络,是中国网络解决方案领导品牌。作为一家民族企业,锐捷网络坚持走自主研发的道路,在竞争激烈的网络设备市场开辟出独树一帜的创新大道。以锐捷网络代表的厂商,不仅为中国用户争取了更低的建网和用网成本,更有效保障了网络安全和可控性。朝着“做永续经营、高成长的企业”愿景,锐捷网络一步一个脚印,踏实前行。今天,锐捷网络已连续7年稳居企业网市场国内厂商占有率排名首位。
网关品牌排行榜三——中兴
中兴通讯是全球领先的综合通信解决方案提供商。公司成立于1985年,是在香港和深圳两地上市的大型通讯设备公司。公司通过为全球160多个国家和地区的电信运营商和企业网客户提供创新技术与产品解决方案,让全世界用户享有语音、数据、多媒体、无线宽带等全方位沟通。
中兴通讯股份有限公司,全球领先的综合通信解决方案提供商,中国最大的通信设备上市公司。主要产品包括:2G/3G/4G/5G无线基站与核心网、IMS、固网接入与承载、光网络、芯片、高端路由器、智能交换机、政企网、大数据、云计算、数据中心、手机及家庭终端、智慧城市、ICT业务,以及航空、铁路与城市轨道交通信号传输设备。为全球180多个国家和地区的顶级运营商提供创新技术与产品解决方案,通过全系列的无线、有线、业务、终端产品和专业通信服务,满足全球不同运营商的差异化需求。
网关品牌排行榜四——Juniper
Juniper网络公司致力于实现网络商务模式的转型。作为全球领先的联网和安全性解决方案供应商,Juniper网络公司对依赖网络获得战略性收益的客户一直给予密切关注。公司的客户来自全球各行各业,包括主要的网络运营商、企业、政府机构以及研究和教育机构等。Juniper网络公司推出的一系列联网解决方案,提供所需的安全性和性能来支持全球最大型、最复杂、要求最严格的关键网络。
InfranetInitiative所设想的新型网络不但涵盖了PSTN和互联网等现有公共网络的最佳属性,而且还在IP/MPLS基础架构上添加了关键的商务功能。因此,Infranet模式将可以为企业、政府机构和服务供应商等客户提供更高级别的应用性能、业务支持、运营可扩展性以及网络安全性。此外,InfranetInitiative还将制定商业准则来支持供应商网间结算,以在多网络间传输服务质量的流量--而这正是当前尽力而为的互联网环境所无法实现的。
网关品牌排行榜五——迪普
迪普科技总部位于杭州,在北京和杭州设有研发中心,具有一支业界领先的研发团队。公司拥有一系列具有自主知识产权的核心技术,自主开发了高性能硬件架构APP-X、L2~7融合 *** 作系统ConPlat、应用识别与威胁特征库APP-ID,并在此基础上推出了包括深度业务路由交换网关(DPX)、应用防火墙(FW)、入侵防御系统(IPS)、DPI流量分析设备、上网行为管理及流控(UAG)、应用交付平台(ADX)以及交换机、路由器等在内的十余类上百款产品。
杭州迪普科技有限公司是在网络、安全及应用交付领域集研发、生产、销售于一体的高科技企业。迪普科技总部位于杭州,在北京和杭州设有研发中心,具有一支研发团队。从成立至今,迪普科技实现了高速成长,目前已经服务超过10,000家客户,全面进入了包括运营商、政府、电力、能源、金融、交通、教育、医疗、大企业等在内的各行各业,成为业界重要厂商之一。
网关品牌排行榜六——神州数码
神州数码是联想集团前瞻性地看到了信息服务业的巨大发展前景,于2000年主动应对Internet和WTO的挑战,分拆出来一间公司,开始了二次创业,年轻的公司命名为“神州数码”(DigitalChina)。2001年,神州数码在香港联合交易所主板上市,并开始了向IT服务战略方向的转型。如今,神州数码业务领域覆盖了中国市场从个人消费者到大型行业客户的全面IT服务,客户遍及金融、政府、电信、公共事业及企业领域。至2007年,神州数码已有近万名员工,其中约50%是研发人员。全国性网络已拓展至19个平台,办事处分布于30多个二、三级城市,业务覆盖全国。如今的神州数码是国内最大的整合IT服务提供商。
神州数码集团股份有限公司(股票代码:000034SZ,简称:神州数码),其名字源于DigitalChina,数字化中国。20年来,神州数码业务已完成了从边缘到主流,从主流到前沿的战略转型,成为中国领先的整合IT服务商。未来,神州数码将以整合云服务、自有品牌产品及服务为切入点,打造融合服务平台,为合作伙伴注入新动能,与合作伙伴共同成长。
网关品牌排行榜七——启明星辰
启明星辰信息技术集团股份有限公司成立于1996年,由留美博士严望佳女士创建,是国内具有超强实力的、拥有完全自主知识产权的网络安全产品、可信安全管理平台、安全服务与解决方案的综合提供商。2010年启明星辰集团在深圳A股中小板上市。目前,启明星辰已对网御星云、杭州合众、书生电子、赛博兴安进行了全资收购,自此,集团成功实现了对网络安全、数据安全、应用业务安全等多领域的覆盖。
启明星辰,是由留美博士严望佳女士创建的拥有完全自主知识产权的网络安全高科技企业,是国内最具实力的网络安全产品、可信安全管理平台、专业安全服务与解决方案的综合提供商。公司总部位于北京市中关村软件园启明星辰大厦,在全国各省、市、自治区设立分、子公司及办事处三十多个,拥有覆盖全国的渠道体系和技术支持中心。
网关品牌排行榜八——汉柏
汉柏科技有限公司是人脸识别及云计算数据中心整体解决方案提供商,汉柏公司2009年成立于天津滨海高新区,运营中心设在北京CBD银泰中心,拥有覆盖全国的销售和技术服务体系,在香港、台湾、俄罗斯、东欧、拉美等大力拓展全球市场。2016年,汉柏科技与哈尔滨工业大学的下属公司“工大高新”进行资产重组,正式成为国有控股的上市公司(股票代码600701)。
汉柏科技有限公司(英文:Opzoon,下简称“汉柏”)是一家全球领先的新一代绿色数据中心解决方案提供商,也是中国首家成立企业级应用数学实验室的高新技术企业。2009年汉柏成立于天津滨海高新区,运营总部设在北京CBD银泰中心。已构建形成以硅谷、北京、天津、上海四位一体的世界级研发体系,数据中心解决方案及产品应用遍及全球30余个国家和地区,推动了云计算产业在政府信息化和行业信息化的实践与应用。
网关品牌排行榜九——中兴网安
北京中兴网安科技有限公司(以下简称中兴网安)成立于2010年,注册资金人民币1000万元,公司的宗旨是为构建信息网络秩序提供全程全网感知、监控、记录、追溯等综合管理防范机制和安全保障手段,并为日益普及的云计算和物联网应用提供先进的安全技术解决方案和相关产品。自成立之日起,中兴网安即秉承“科技创新、产业报国”的经营理念,针对当今信息网络各类威胁日益严峻的状况,凭借自身强大的技术力量,依托完备的产品研发和ISO9001质量管理体系保障,率先在业界创新式地提出并贯彻“平安网络”的管理理念,生产研发出CTM(CollaborativeTraceableManagement)一体化协同防控管理系统系列产品,并努力使之成为信息网络秩序管控体系国家技术标准。
网关品牌排行榜十——Symantec
赛门铁克(Symantec)公司成立于1982年,公司总部位于加利福尼亚州的Cupertino,现已在全球40多个国家和地区设有分支机构,是信息安全领域全球领先的解决方案提供商,为企业、个人用户和服务供应商提供广泛的内容和网络安全软件及硬件的解决方案,可以帮助个人和企业确保信息的安全性、可用性和完整性。
赛门铁克是信息安全领域全球领先的解决方案提供商,为企业、个人用户和服务供应商提供广泛的内容和网络安全软件及硬件的解决方案,可以帮助个人和企业确保信息的安全性、可用性和完整性。

通俗的说,流量控制就是控制用户请求的策略,主要包括:权限、限流、流量调度。
权限上一篇已经讲过了,这一篇讲限流,下一篇讲流量调度。
限流是指限制用户调用的频率(QPS/QPM)或者次数。

流量限制,站在用户或者运营的角度看,最直观能感受到的作用是——收费
各大主流开放平台的对外API,一般都有一些免费的额度,可以供个人测试用,一旦想大规模调用,就需要付费购买更大的额度(频率、次数),根据调用次数或者频率进行收费。一旦超过拥有的额度,就会被限制调用。

其实这才是限流最大的用处,只是用户或者运营同学无感,所以不太被大多数人了解。
网关后面是各个服务,各个服务的接口通过网关透出去给用户调用。理论上说,用户的流量是不可预知的,随时可能来一波,一旦流量的峰值超过了服务的承载能力,服务就挂了,比如有大新闻发生时的某浪微博,比如前些年的12306
所以, 网关必须保证,放过去到达后端服务的流量一定不可以超过服务可以承载的上限 。这个上限,是网关和各个服务协商出来的。

由简到难,限流可以 分为单机限流、单集群限流、全集群限流
这里不讨论具体的如漏桶、令牌桶等限流算法,只说概念和思想。

单机限流的思想很简单,就是每个机器的限流值 x 机器数量 = 总的限流值。
举个例子,A用户的QPS限制是100,网关部署了10台机器,那么,每台机器限制10QPS就可以了。
先说好处,这种方法实现起来非常简单,每台机器在本地内存计算qps就可以了,超过阈值就拒流。
不过单机限流的缺陷也十分明显,主要体现在两点:
 当网关部署的机器数量发生变化时,每台机器的限流值需要根据机器数调整。现实中,因为扩容、缩容、机器宕机等原因,机器数的变化是常有的事。
 单机限流的前提是,每台网关承载的用户的流量是平均的,但是事实上,在某些时间,用户的流量并不是完全平均分布在每台机器上的。
举个例子:
10台机器,每台限qps10,其中3台每台实际qps是15,因为超限导致用户流量被拒。其余7台每台qps是7。这样用户总的qps = 15 3 + 7 7 = 94 用户qps并没有超限,但是却有一部分流量被拒了,这样就很有问题。
实际上,单台限流的阈值也会设置的稍微大一些,以抵消流量不均的问题。
因为上面的问题, 单机限流通常作为一种兜底的备用手段,大多数时候用的还是集群限流

先来看一个示意图:

相比单机限流,集群限流的计数工作上移到redis集群内进行,解决了单机限流的缺陷。
但是集群限流也不是完美的,因为引入了redis,那么,当网关和redis之间的网络抖动、redis本身故障时,集群限流就失效了,这时候,还是得依靠单机限流进行兜底。
也就是说, 集群限流 + 单机限流配合,才是一个比稳妥的方案

接下来我们来思考这样一个问题:大型网关一般都是多机房、多地域部署的,当然,后端的服务也是多机房、多地域部署的,在保护服务这一点来说,集群限流是够用了。但是对用户来说,还是有一些问题:
比如,用户购买的QPS上限是30,我们的网关部署在中国北、中、南三个地域,那么这30QPS怎么分配呢?
平均肯定不行,用户的流量可能是明显不均衡的,比如用户的业务主要集中在中国北方,那么用户的流量大部分都会进入北方的网关,网关如果限制QPS为10的话,用户肯定来投诉。
那每个地域都限制为30行不行?也不行,如果用户的流量比较均匀的分布在各个地域,那么用户购买了30QPS,实际上可能使用了90QPS,这太亏了。
按照解决单机限流流量不均的思路,搞一个公共的redis集群来计数行不行?
也不行,受限于信号传播速度和天朝的广阔疆域,每个流量都计数,肯定不现实,rt太高会导致限流失去意义,带宽成本也会变得极其昂贵,对redis的规格要求也会很高。总之,很贵还解决不了问题。
有一种巧妙的解决办法是:本地集群阶梯计数 + 全集群检查。
还是刚才的例子:
限流阈值时90,那么三个地域各自计数,当本地域的数值达到30时,去其他两个地域取一次对方当前的计数值,三个地域的计数值加起来,如果超了,告诉另外两个地域超了,开始拒流。如果没超,本地QPS每上涨10,重复一次上述的动作。
这样就能有效的减少与redis的交互次数,同时实现了全地域真·集群限流。
当然,这种全地域集群限流,因为rt和阶梯计数间隔的存在,一定是不准的,但是,比单集群限流还是好很多。

当某个用户流量特别大的时候,redis计数就会遇到典型的热点key问题,导致redis集群单节点压力过大, 有两种办法可以解决这个问题:打散和抽样。

打散是指,把热点key加一些后缀,使其变成多个key,从而hash到不通的redis节点上,均摊压力。
比如热点key是abcd,那么打散后,key变成了abcd1、abcd2、abcd3、abcd4。技术时,轮流加1、2、3、4的后缀就可以了。

抽样是指,针对热点key,不是每个每个请求到来时都进行计数,而是进行一个抽样,比如每10个请求记一次数,这样redis的压力就会降低到十分之一。

说着把流量调度的也说完了哈哈,那下一篇再说说监控好了,顺便推一下我现在在用的国产网关:GOKU,来自Eolinker。我觉得比KONG好用,感兴趣的同学可以自行去了解一下。
>

网关的一个用途是在物联网环境和云之间创建通信链路。

网关类型

网关可以采用多种形式并执行各种任务。这方面的例子包括:

Web应用程序防火墙: 此类型过滤来自Web服务器的流量并查看应用程序层数据。

云存储网关:此类型使用各种云存储服务API调用转换存储请求。它允许组织将存储从私有云集成到应用程序中,而无需迁移到公共云。

API、OA或 XML 网关: 此类型管理流入和流出服务,面向微服务的体系结构或基于XML的Web服务的流量。

物联网网关: 此类型聚合来自物联网环境中设备的传感器数据,在传感器协议之间进行转换,并在向前发送之前处理传感器数据。

媒体网关 : 此类型将数据从一种网络所需的格式转换为另一种网络所需的格式。

电子邮件安全网关:此类型可防止传输违反公司政策或将以恶意目的传输信息的电子邮件。

VoIP中继网关 :这种类型便于使用普通老式电话服务设备,如固定电话和传真机,以及IP语音(VoIP)网络。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13495444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-18
下一篇 2023-08-18

发表评论

登录后才能评论

评论列表(0条)