案例分析——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案例分析系列之 - 架构设 ...
随机推荐
- 如何从Android工程导出apk安装包
http://jingyan.baidu.com/article/1876c852b3208b890b137606.html
- log4j:ERROR Category option " 1 " not a decimal integer.错误解决
log4j.properties 的配置文件中: log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }: ...
- 使用VSCode和VS2017编译调试STM32程序
近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台 ...
- python_鸡兔同笼问题
鸡兔同笼问题 -- 今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何? --鸡和兔在一个笼子里,从上面数,有35个头:从下面数,有94只脚.问笼中各有几只鸡和兔 如何逻辑整理? -- 鸡头和兔子 ...
- junit设计模式--命令者模式
命令模式的意图 将一个请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化: 对请求排队或记录请求日志,以及支持可撤销的操作: 命令模式告诉我们可以为一个操作生成一个对象并给出它的一个执行方法 ...
- Linux指令--wc
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...
- lambda高级进阶--延迟执行
前面的整理我们也已经说到了,使用lambda表达式的主要原因是,将代码的执行延迟到一个合适的时间点.在使用lambda表达式的时候务必记住一点就是说lambda表达式都是延迟执行的. 延迟执行代码的原 ...
- linkin大话面向对象--方法详解
1,方法的参数传递机制:值传递. 首先弄懂2个概念:形参和实参. 形参(形式参数):相当于函数(Java中也把函数称之为方法)中的局部变量,在函数被调用时创建,并以传入的实参作为起始值,函数调用结束时 ...
- MySQL中判断日期间隔的方法
MySQL中查询一定时间间隔内的数据的方法比较常用,可以使用TO_DAYS.DATE_SUB等函数来实现. TO_DAYS函数的作用是返回指定日期从0年开始计算的天数. DATE_SUB函数的作用是通 ...
- 【转】sed 学习笔记
一 . sed 简介 1 . 功能 sed 是一种流编辑器,所谓流编辑器是指能够对来自文件或者管道的输入流进行基本的文本转换的工具,比方说查找替换删除等. 2 . 最简单的运作机制 sed ...