无线APP时代HTTP请求DNS优化-通用

简介: 无线时代,网络稳定性差,应用流量敏感,APP与server之间每次HTTP请求都需要DNS解析,有没有优化方法呢?

缘起:无线时代,网络稳定性差,应用流量敏感,APP与server之间每次HTTP请求都需要DNS解析,有没有优化方法呢?

一、PC时代,HTTP请求处理过程

image.png

(1)浏览器、或者PC客户端访问DNS服务器,由域名拿到IP(一般来说是个nginx的IP)

(2)浏览器、或者PC客户端用IP访问nginx

(3)nginx将请求分发给实际处理HTTP请求的web-server

二、无线APP时代的特点

(1)DNS解析的时间不能忽略

(2)一旦DNS被劫持,整个APP就挂了(还记得N年前baidu的域名被劫持的事情么?)

三、一种不需要DNS解析的HTTP请求优化方案

image.png

(1)第一次访问时,先拉取server的ip-list保存到本地,访问过程与普通HTTP访问过程相同

(2)未来访问时,客户端直接使用ip-list中的IP来访问server,不再需要DNS

(3)如果DNS被劫持,直接尝试使用ip-list中的IP访问

四、潜在的问题

(1)虽然少了一步DNS查询和一步nginx中转,那怎么做负载均衡呢?

答:APP随机访问ip-list中的IP

(2)使用nginx可以方便的增加后端的服务,不使用nginx如何做水平扩展呢?

答:直接在ip-list中增加ip即可

(3)每次访问都要访问ip-list,还是挺废流量的,还有其他优化方案么?

答:增加一个版本号,第一次拉取ip-list时,不但把ip-list放到APP本地,并把版本号也拿到。未来不用每次都拿ip-list,而是先拿版本号,如果版本号不变,直接使用本地的ip-list。只有版本号变化时,才需要重新拉取ip-list

(4)还有其他什么好处?

答:使用nginx不好做异构服务器的负载均衡,即难以根据后端服务的处理能力来分配负载。使用ip-list,只要加上一个权重参数,即可实现异构服务器的负载均,例如:

192.168.1.1, 10

192.168.1.2, 10

192.168.1.3, 20

可以看到,第三个后端服务的处理能力是前两个的两倍,APP做负载均衡时考虑上第二个参数即可

五、再次总结这种方案的好处

(1)不需要每次请求做DNS解析,节省时间

(2)不需要每次请求做nginx转发,节省时间

(3)不需要每次拉取拉取ip-list,节省流量

(4)DNS被劫持时仍可以使用本地ip

目录
相关文章
|
7天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
22 2
|
10天前
|
Java
java原生发送http请求
java原生发送http请求
|
17天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
38 1
|
1月前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
70 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
163 0
|
3天前
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
16 1
|
14天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
22天前
|
安全 数据安全/隐私保护
深入解析:HTTP和HTTPS的三次握手与四次挥手
在这些握手和挥手过程中,双方交换信息,协商参数,建立或关闭连接,以保证数据的可靠传输。HTTPS在此基础上加入了数字证书验证和加密通信,增加了安全性。这些步骤确保了HTTP和HTTPS协议的通信过程的稳定和安全。
112 0
|
25天前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
197 2
|
29天前
|
存储 安全 程序员
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
66 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多