开发APP怎么样才能做到支撑高并发量呢

545550598@qq.com
545550598@qq.com
545550598@qq.com
211
文章
0
评论
2021-05-0317:12:2039 1417字

网关系统主要有两种:

第一种叫客户端网关主要用来接收一些客户端的请求,也就是APP的服务端。

第二种叫开放网关,主要是公司(比如京东)对于第三方合作伙伴提供接口。

这两种不同网关所使用的技术非常类似。

流量比较大的网关面临的难点包括:

第一,网关系统需要扛几十亿的流量调用,接口的平稳运行、每一个接口在后端服务之后的性能耗损都非常重要。比如我们使用了一个Redis集群,然后构建了两个机房,每一个机房都搭建了一个Redis集群,这样的话就能够很好地保证高可用。在面对一个瞬间流量的时候,我们采用了一些缓存技术,或者更前置的Nginx+lua+Redis技术,让这种大流量应用能够脱离开JVM的依赖。还有我们需要梳理各个接口,通过降级的策略把一些弱依赖的接口进行降级,从而保证核心应用的可用。

第二,网关系统其实就是一个把Http请求拓展到后端服务的过程。我们的网关承接了一千以上的后端服务接口,面对这种情况,怎样做到服务与服务之间相互不影响?架构层面怎样能够杜绝蝴蝶效应、防止雪崩?就是说当一个接口出现问题的时候,不至于影响到其他接口的健康运行。这个说起来简单,但实际却不然。
一千个以上的接口,每个接口性能都不一致,而且每个接口所依赖的外部资源、数据库缓存等都不一样,几乎每天都会出现各种各样的问题,我们怎样通过一些隔离技术、治理技术等,保证当这些接口出现问题的时候,不会影响到全局?

第三,我们对外暴露了一千个服务接口,所有接口的后面意味着几十个甚至上百个团队每天在不停地开发,每天都可能上线新的需求。面对这么复杂的情况,我们不可能每次后端服务器有任何修改,都需要有网关的修改或上线,这样网关会变得非常脆弱,稳定性极低。

我们采用了一个动态接入的技术,让后端的网关能够通过一种接入的协议进行无缝接入,之后通过一些动态代理的方式,直接让后端的接口,不管做任何修改或上线,都可以通过后端管理平台从网关上对外进行透传发布,很好地解决了我们网关所面临的依赖于后端接口服务的上线问题。

网关的四个技术方向:

第一,统一接入。就是前端(包括APP或其他来源)的流量,能够都在统一网络层进行接入。这一层所面临的问题是:高性能透传、高并发接入、高可效性,以及当前端流量来了之后,怎样能够进行一个负载的往后端的转发。

第二,流量管控,主要指流量治理部分。面对海量流量,我们怎样通过一些防刷技术,保障网关不被大流量冲垮;以及怎样通过一些像限流、降级、熔断等技术,对网关进行全方位保护。

第三,协议适配。就是前文提到的,网关会透传后端上千个服务,而这些服务一定不是每一个都需要网关去开发配置的。我们通过一个协议适配的转换,让后端的各种服务通过我们指定的协议、通过http的方式从网关开放出去,当然网关不单单是http协议,还有一些TCP的。京东内部的协议相对比较统一,有Http的restful的协议,也有JSF的接口,JSF是京东内部自研的一个框架,一个RPC调用框架,和double是类似的,然后基于注册发现的一个rpc框架。

第四,安全防护。这一部分对于网络来说非常重要,因为网关是整个公司对外的一个出口,在这一层我们要做一些防刷,比如防清洗一些恶意流量、做一些黑名单,当有一些恶意流量的话,通过限制IP等限制手段把它拒绝在整个网关之外,防止这些恶意流量把网关冲垮。

以上只是应对高并发量的一个方面。要做到更好的应对高并发,还有很多方面的工作需要做。我们下次再接着聊这个话题。

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
545550598@qq.com
  • 图片来源于网络,除非特殊声明,本站文章均为原创,转载请务必保留本文链接图片来源于网络,除非特殊声明,本站文章均为原创,转载请务必保留本文链接
  • 转载请务必保留本文链接:https://app.daqing8080.com/?p=36
小型企业如何使用定制软件进行竞争 app开发

小型企业如何使用定制软件进行竞争

作为一家小企业,在竞争激烈的行业中脱颖而出可能很困难。但越来越多的小型企业正在发现各种定制软件解决方案如何帮助他们不仅提高工作效率,提高利润,而且还能比以往更快地覆盖更多客户。 在这篇文章中,我们仔细...
如何促进移动应用APP增加安装数量? app开发

如何促进移动应用APP增加安装数量?

移动应用市场已达到顶峰,因此竞争非常激烈。每一位新的创新者注定都会发现应用营销的挑战。在众多应用程序中,要说明您的应用程序如何有用和独特将不是一件容易的事。 因此,出现了一个问题–如何提高移动应用程序...
如何为您的公司雇用最佳移动应用程序开发人员 app开发

如何为您的公司雇用最佳移动应用程序开发人员

此报价在商业世界中普遍适用。只有在适当的人员配合下,公司才能完全实现其愿景。任何企业的最终愿景都是加强市场。考虑到最新趋势,您已经知道移动应用程序是实现这一目标的最佳方法。如果您没有开发应用程序的技能...
两个主要平台的设计类比:Android和iOS 新闻资讯

两个主要平台的设计类比:Android和iOS

设计应用程序是开发过程的主体。在进行设计之前,开发人员先研究范围文档,了解应用程序的用途并研究特定的应用程序以使流程清晰。 android和iOS都遵循不同的准则,因此,设计线框的任务变得棘手。这是因...