案例分析——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案例分析系列之 - 架构设 ...
随机推荐
- 优化表单数据的JS校验
在平常的web开发中,我经常需要在客户端对表单的数据进行验证.比如,我们验证表单输入的内容不为空: ? <form action="" method="post&q ...
- 开源纯C#工控网关+组态软件(八)表达式编译器
一. 引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning ...
- Linuxc - 通过管道,让小程序更有活力
通过管道,让小程序更有活力 root@jiqing:~/cspace/les6# ls avg.c avg.out input.c input.out 一个负责输入,一个负责统计平均值 avg.c # ...
- express官网学习笔记
npm init 创建一个package.json npm install express --save-dev 安装到项目依赖 便于多人开发 路由结构定义 app.METHOD(PATH, HAND ...
- JQuery判断是否为空
//有如下三种判断 var A=$("#**).val(); if(A==null||A!=undefined||A==""){ //处理 } //参考文章1说下面方法效 ...
- java常用类--系统相关
java提供了System类和Runtime类来与程序的运行平台进行交互. System类 System类代表java程序的运行平台,程序不能创建这个类的对象,System类提供了一些类field和方 ...
- android软键盘的显示和隐藏
显示: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggle ...
- nginx配置文件中的location理解
关于一些对location认识的误区 1. location 的匹配顺序是"先匹配正则,再匹配普通". 矫正: location 的匹配顺序其实是"先匹配普通,再匹配正则 ...
- grep运用
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- Sql Server的艺术(六) SQL 子查询,创建使用返回多行的子查询,子查询创建视图
子查询或内部查询或嵌套查询在另一个SQL查询的查询和嵌入式WHERE子句中. 子查询用于返回将被用于在主查询作为条件的数据,以进一步限制要检索的数据. 子查询可以在SELECT,INSERT,UPDA ...