齐聚无忧

?找回密码
?博狗开元棋牌

QQ登录

只需一步,快速开始

查看: 13|回复: 0
打印 上一主题 下一主题

APP还在用域名连接后端?用IP提速N倍

[复制链接]

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
跳转到指定楼层
楼主
发表于 7?天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
「转」APP还在用域名连接后端?用IP提速N倍哇塞农村
无线时代,网络稳定性差,应用流量敏感,APP与Server之间每次HTTP请求都需要进行DNS解析,有没有可能直接使用IP来提速呢?
典型HTTP请求处理过程如何?


第一步,客户端访问DNS服务器,由域名拿到Nginx的外网IP;
第二步,客户端使用外网IP访问Nginx;
第三步,Nginx将请求分发给实际处理HTTP请求的Web-server;
移动时代APP的访问特点如何?
(1)网络慢,DNS解析的时间不能忽略;
(2)一旦DNS被劫持,整个APP就挂了;
APP能够把Web-server的ip-list内置,从而跳过DNS解析,跳过Nginx中转,直接通过IP访问后端的Web-server么?
不行,Web-server的扩展性较差,增加IP时APP没办法得到通知。
画外音:Nginx可以保证Web-server的高可用,去掉Nginx后,需要APP重试,或者Web-server做高可用。
如何进行优化呢?

不要将ip-list内置在APP里,而是通过HTPP请求来拉取:
(1)APP第一次访问时,先拉取Web-server的ip-list保存到APP本地;
画外音:使用域名拉取ip-list,只1次访问。
(2)未来访问时,客户端直接使用ip-list中的IP来访问server,不再需要DNS;
画外音:使用IP访问业务Web-server,所有业务请求。
跳过了Nginx,如何对Web-server怎么做负载均衡呢?
APP随机访问ip-list中的IP。
跳过了Nginx,如何对Web-server做水平扩展呢?
直接在ip-list中增加IP即可。
新的问题又来了,在ip-list里增加了IP,新的用户能访问到新的IP,旧的APP已经将ip-list拉取到APP本地了,此时如何更新本地的ip-list呢?
版本号,是架构设计中,减少拉取流量的同时,又能保证数据随时更新的好办法:
(1)ip-list增加一个版本号,每次拉取ip-list时,同时拿到版本号;
(2)如果版本号与本地ip-list版本号一致,则直接使用本地ip-list;
画外音:节省流量,不用每次拉取文件。
(3)版本号变化时,重新拉取ip-list保存到本地;
画外音:保证数据能够得到更新。
总结
无线时代,可使用“IP直通车”来加速APP访问:
不需要每次请求做DNS解析,节省时间,避免DNS劫持
不需要每次请求做Nginx转发,节省时间
不需要每次拉取ip-list,节省流量
通过ip-list可以对Web-server做水平扩展
通过版本号可以保证ip-list的数据一致性




分享到:? QQ好友和群QQ好友和群
收藏收藏
您需要登录后才可以回帖 登录 | 博狗开元棋牌

本版积分规则

Archiver|手机版|小黑屋|齐聚无忧 |网站地图

GMT+8, 2019-10-16 14:53 , Processed in 0.106424 second(s), 45 queries .

Powered by Discuz! X3.4

? 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表