案例分析——BAT业务https化经历
- 挑战:https相比于http,加解密需要的计算资源大量增加,导致同样的服务器从http切换到https后,QPS只能达到之前的10-20%。
- 挑战:因为https中不能包含http流量,因此需要全站https
- 当前网络中http与https的份额是6:4,原因主要是:https速度慢(未经任何优化)、证书申请成本高(流程复杂、花钱购买高级别证书)。因此,https迁移的主要关注点就是:1、运用多种技术手段提升https的速度,优化用户体验;2、降低证书申请的成本
- 挑战:https加密涉及到多种加密算法(非对称加密、对称加密、签名算法、一致性校验算法等)
- 挑战:通常情况下采用完全握手的https连接方式的性能甚至不如http协议性能的10%
- 分布式session cache:nginx集群将产生的session cache统一存储到后端同一个redis集群中,利用redis集群实现了nginx集群的session cache共享。
- 由于session cache会消耗大量内存,因此出现了将session 信息加密存储到用户设备的内存中,用户将加密的session信息发送到nginx集群,nginx利用保存的key来解密session,最终实现了session机制。可以将用户内存中加密的session信息写入磁盘,这样可以解决浏览器意外重启、app异常、网络切换等等问题导致的session丢失的问题;同时服务端将session 的key统一保存到redis集群中,或者一个集群采用同一个key来解决负载均衡带来的加解密失败的问题。
- 挑战:当用户网站位于多个云、CDN上面时,如果每个地方都部署一个私钥,可能会因为一个位置的私钥泄露引发整个网站的安全问题
- 挑战:淘宝、天猫、聚划算入口下有非常多的子项目,这些项目都在采用不同的网络架构为用户提供服务
- 挑战:用户输入http自动跳转到https
- https性能优化
- 采用session ticket来实现http状态保持。
- nginx集群+redis 实现分布式共享内存的方案。
- 解耦加解密模块,利用定制的硬件加密卡或者别处空闲的CPU、GPU资源来执行加解密操作,然后常规代码异步调用加解密模块,降低http服务器的cpu压力,提示QPS。
- 使用SPDY、HTTP2 等支持多路复用的协议来降低TLS建连的次数。
- 利用Flase Start的1-RTT建连,降低TLS握手次数。
- CDN动态加速、预建连接,提升用户体验
- 优化加解密算法
案例分析——BAT业务https化经历的更多相关文章
- Android业务组件化之现状分析与探讨
前言: 从个人经历来说的话,从事APP开发这么多年来,所接触的APP的体积变得越来越大,业务的也变得越来越复杂,总来来说只有一句话:这是一个APP臃肿的时代!所以为了告别APP臃肿的时代,让我们进入一 ...
- [案例分析] 政务云市场面临的复杂格局——重庆政务云模式的启示:多厂商竞争化、PaaS 化
新闻背景: 2019 年 9 月底,重庆市大数据应用发展管理局发布政务云平台采购公告,预算金额为 5000 万元,以上 4 家入选. 最终项目被项目被阿里云.腾讯云.华为云.紫光云 4 家瓜分. 50 ...
- ENode框架Conference案例分析系列之 - 业务简介
前言 ENode是一个应用开发框架.通过ENode,我们可以方便的开发基于DDD+CQRS+EventSourcing+EDA架构的应用程序.之前我已经写了很多关于ENode的架构以及设计原理的文章, ...
- 用深度学习LSTM炒股:对冲基金案例分析
英伟达昨天一边发布“全球最大的GPU”,一边经历股价跳水20多美元,到今天发稿时间也没恢复过来.无数同学在后台问文摘菌,要不要抄一波底嘞? 今天用深度学习的序列模型预测股价已经取得了不错的效果,尤其是 ...
- 5、JVM--调优案例分析
5.1.案例分析 5.1.1.高性能硬件上的程序部署策略 假如一个15w/天左右的在线文档类型网站再准备更换硬件系统 新的硬件为4个CPU.16GB物理内存,操作系统为64为Cento是 Resin作 ...
- java 并发基础,及案例分析
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了,然而并发问题是令我们大多数程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们深入研 ...
- 软工案例分析作业-CSDN
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业要求 我在这个课程的目标是 提升软件开发能力与团队意识 这个作业在哪个具体方面帮助我实 ...
- “深度评测官”——记2020BUAA软工软件案例分析作业
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发 ...
- ENode框架Conference案例分析系列之 - 文章索引
ENode框架Conference案例分析系列之 - 业务简介 ENode框架Conference案例分析系列之 - 上下文划分和领域建模 ENode框架Conference案例分析系列之 - 架构设 ...
随机推荐
- Oracle问题之literal does not match format string
问题: oerr ora 186101861, 00000, "literal does not match format string"// *Cause: Literals i ...
- [one day one question] nodejs require 缓存,无法检测文件变化
问题描述: nodejs require 缓存,无法检测文件变化,当文件require引入后,当文件发生变动后即使再次使用require,返回的依然是第一次引入的文件内容,这怎么破? 解决方案: de ...
- 重温MFC
1. Button控件 2. 旋转和高级编辑控件 3. 标签控件和属性页 4. 列表控件 5. 树控件 6. 进度条控件和滑动条控件 7. 滚动条 8.工具栏和状态栏
- 摘-BMC自动化解决方案产品概览
以下内容摘自BMC解决方案白皮书 BMC 解决方案助力您的企业快速享受自动化带来的快速效益,并随时间推移实现这些优势的最大化. BMC 自动化技术可帮助您优化敏捷性,同时保持必要的治理和合规性控制.无 ...
- Linux指令--kill
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须 ...
- linkin大话面向对象--GC和jar包
GC java的垃圾回机制是java语言的重要机制之一.当程序创建对象,数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中.当这块内存不再被任何变量引用时,这块内存就 ...
- mysql关于char和varchar的查询效率问题
看了好多资料都说 varchar(size) 可变长度的字符值,节省空间,查询效率低 char(size) 固定长度的字符值,浪费空间,查询效率高 但是实际测试 char(100) varcha ...
- 端口扫描命令nmap
转:http://www.osyunwei.com/archives/2004.html 下面教大家在CentOS中用nmap查看主机端口: 一.安装nmap yum install nmap -y ...
- 本地工程引入maven工程的配置方式
一.准备 IDE: IntelliJ IDEA 2016.3.1 maven: 3.5.2 JDK: 1.8 操作系统: Window 7 二.配置 1. maven 3.5 下载地址:http:// ...
- 关于document.body.scrollTop与documentElement.scrollTop
遇到document.body.scrollTop值为0的问题 今天在写一个小demo的时候,使用滚动条,我用document.body.scrollTop获取滚动条的位置,但是很奇怪的发现在谷歌上获 ...