??xml version="1.0" encoding="utf-8" standalone="yes"?>四川快乐12走势图:BlogJava - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/misc专注于Java技?/description>zh-cnMon, 10 Dec 2018 13:31:53 GMTMon, 10 Dec 2018 13:31:53 GMT60 达达O2O后台架构演进实践:从0?000高并发请求背后的努力 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/12/10/433542.htmlJack JiangJack JiangMon, 10 Dec 2018 11:32:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/12/10/433542.html//www.ot7t.com.cn/jb2011/comments/433542.html//www.ot7t.com.cn/jb2011/archive/2018/12/10/433542.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433542.html//www.ot7t.com.cn/jb2011/services/trackbacks/433542.html阅读全文

Jack Jiang 2018-12-10 19:32 发表评论
]]>
全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/12/04/433535.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Tue, 04 Dec 2018 05:36:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/12/04/433535.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433535.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/12/04/433535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433535.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433535.html</trackback:ping><description><![CDATA[     摘要: 1、引言对于互联网,域名是访问的第一跳,而这一跳很多时候会“失足”(尤其是移动端网络),导致访问错误内容、失败连接等,让用户在互联网上畅游的爽快瞬间消失。而对于这关键的第一跳,包括鹅厂在内的国内互联网大厂,都在持续深入地研究和思考对策,本文将就鹅厂团队在这一块的技术实践,做一个深度的总结和技术分享,希望给大家带来些许启发。学习交流:- 即时通讯/推送技术开发交?群:101...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/12/04/433535.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-12-04 13:36 <a href="//www.ot7t.com.cn/jb2011/archive/2018/12/04/433535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JWT技术解决IM系统Socket长连接的身份认证痛点 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/11/28/433527.htmlJack JiangJack JiangWed, 28 Nov 2018 04:28:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/11/28/433527.html//www.ot7t.com.cn/jb2011/comments/433527.html//www.ot7t.com.cn/jb2011/archive/2018/11/28/433527.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433527.html//www.ot7t.com.cn/jb2011/services/trackbacks/433527.html阅读全文

Jack Jiang 2018-11-28 12:28 发表评论
]]>
技术干货:从零开始,教你设计一个百万级的消息推送系?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/11/27/433523.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Tue, 27 Nov 2018 12:49:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/11/27/433523.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433523.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/11/27/433523.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433523.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433523.html</trackback:ping><description><![CDATA[     摘要: 1、点评本文主要分享的是如何从零设计开发一个中大型推送系统,因限于篇幅,文中有些键技术只能一笔带过,建议有这方面兴趣的读者可以深入研究相关知识点,从而形成横向知识体系。本文适合有一定开发、架构经验的后端程序员阅读,文内个别技术点可能并非最佳实践,但至少都是生动的实践分享,至少能起到抛砖引玉的作用。希望即时通讯网本次整理的文章能给予你一些启发。学习交流:- 即时通讯/推送技术开发交?群:10127...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/11/27/433523.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-11-27 20:49 <a href="//www.ot7t.com.cn/jb2011/archive/2018/11/27/433523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>技术干货:实时视频直播首屏耗时400ms内的优化实践 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/11/22/433511.htmlJack JiangJack JiangThu, 22 Nov 2018 04:48:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/11/22/433511.html//www.ot7t.com.cn/jb2011/comments/433511.html//www.ot7t.com.cn/jb2011/archive/2018/11/22/433511.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433511.html//www.ot7t.com.cn/jb2011/services/trackbacks/433511.html阅读全文

Jack Jiang 2018-11-22 12:48 发表评论
]]>
脑残式网络编程入??:什么是公网IP和内网IP?NAT转换又是什么鬼?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/11/20/433508.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Tue, 20 Nov 2018 04:34:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/11/20/433508.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433508.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/11/20/433508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433508.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433508.html</trackback:ping><description><![CDATA[     摘要: 本文引用?#8220;帅地”发表于公众号苦逼的码农的技术分享?、引言搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢?另外,内行都知道,提到外网IP和内网IP就不得不提NAT路由转换这种东西,那这双是什么鬼?本文就来简单讲讲这些到底都是怎么回事。另外,以下是与本文内相关知识点有关联的文章,可详细...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/11/20/433508.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-11-20 12:34 <a href="//www.ot7t.com.cn/jb2011/archive/2018/11/20/433508.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 网络编程懒人入门(?:通俗讲解,有了IP地址,为何还要用MAC地址?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/11/16/433502.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Fri, 16 Nov 2018 04:32:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/11/16/433502.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433502.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/11/16/433502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433502.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433502.html</trackback:ping><description><![CDATA[     摘要: 1、前言标题虽然是为了解释有?IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要?IP 这样的东西。本文对读者的定位是知?MAC 地址是什么,IP 地址是什么。(本文同步发布于://www.52im.net/thread-2067-1-1.html?、关于作者翟志军,个人博客地址:https://showme.codes/,Github:https://git...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/11/16/433502.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-11-16 12:32 <a href="//www.ot7t.com.cn/jb2011/archive/2018/11/16/433502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 阿里技术分享:阿里自研金融级数据库OceanBase的艰辛成长之?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/11/14/433490.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Wed, 14 Nov 2018 04:49:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/11/14/433490.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433490.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/11/14/433490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433490.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433490.html</trackback:ping><description><![CDATA[     摘要: 本文原始内容由作?#8220;阳振?#8221;整理发布于OceanBase技术公众号?、引言OceanBase 是蚂蚁金服自研的分布式数据库,在?9 年的发展历程里,从艰难上线到找不到业务场景濒临解散,最后在双十一的流量考验下浴火重生,成为蚂蚁金服全部核心系统的承载数据库。这一路走来的艰辛和故事,蚂蚁金服高级研究员、OceanBase 团队负责人阳振坤将为你娓娓道来。什么是OceanBa...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/11/14/433490.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-11-14 12:49 <a href="//www.ot7t.com.cn/jb2011/archive/2018/11/14/433490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/11/12/433484.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Mon, 12 Nov 2018 11:03:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/11/12/433484.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433484.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/11/12/433484.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433484.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433484.html</trackback:ping><description><![CDATA[     摘要: 本文由微信开发团队工程是?#8220;oneliang”原创发表于WeMobileDev公众号,内容稍有改动?、引言Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发(也就是开发了号称Java界最智能的集成开发工具IntelliJ IDEA的公司)。Kotlin可以编译成Java字节码(就像Groovy和Scala一样),也可以编译成JavaScri...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/11/12/433484.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433484.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-11-12 19:03 <a href="//www.ot7t.com.cn/jb2011/archive/2018/11/12/433484.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>阿里技术分享:深度揭秘阿里数据库技术方案的10年变迁史 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/11/06/433472.htmlJack JiangJack JiangTue, 06 Nov 2018 03:03:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/11/06/433472.html//www.ot7t.com.cn/jb2011/comments/433472.html//www.ot7t.com.cn/jb2011/archive/2018/11/06/433472.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433472.html//www.ot7t.com.cn/jb2011/services/trackbacks/433472.html阅读全文

Jack Jiang 2018-11-06 11:03 发表评论
]]>
腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/10/29/433458.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Mon, 29 Oct 2018 04:34:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/10/29/433458.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433458.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/10/29/433458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433458.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433458.html</trackback:ping><description><![CDATA[     摘要: 本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦?#8221;1、GIF格式的历史GIF ( Graphics Interchange Format )原义?#8220;图像互换格式”,是 CompuServe 公司?987年开发出的图?..  <a href='//www.ot7t.com.cn/jb2011/archive/2018/10/29/433458.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-10-29 12:34 <a href="//www.ot7t.com.cn/jb2011/archive/2018/10/29/433458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一分钟理解 HTTPS 到底解决了什么问?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/10/24/433451.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Wed, 24 Oct 2018 06:05:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/10/24/433451.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433451.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/10/24/433451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433451.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433451.html</trackback:ping><description><![CDATA[<p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">本文原作?#8220;虞大胆的叽叽喳喳”,原文链接:jianshu.com/p/8861da5734ba,感谢原作者?/p><h1>四川快乐12走势图:1、引言</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">很多人一提到 HTTPS,第一反应就是安全,对于普通用户来说这就足够了?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">但对于程序员,很有必要了解下 HTTP 到底有什么问题?以及HTTPS 是如何解决这些问题的?其背后的解决思路和方法是什么?</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">本文只做简单的描述,力求简单明了的阐明主要内容,因为HTTPS 体系非常复杂,这么短的文字是无法做到很详细和精准的分析。想要详细了解HTTPS的方方面面,可以阅读此前即时通讯网整理的?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(七):如果这样来理解HTTPS,一篇就够了</a>》一文?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 600px; max-height: 451px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 451.016px;"></div><div data-width="600" data-height="451" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 451px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-df9916f6456b44c7.jpg" src="//upload-images.jianshu.io/upload_images/1500839-df9916f6456b44c7.jpg" data-original-width="600" data-original-height="451" data-original-format="image/jpeg" data-original-filesize="31984" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">(本文同步发布于?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">//www.52im.net/thread-2027-1-1.html</a>?/p><h1 class="yibqv">2、HTTPS相关文章</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(七):如果这样来理解HTTPS,一篇就够了</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">一文读懂Https的安全性原理、数字证书、单项认证、双项认证等</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">HTTPS时代已来,打算更新你的HTTP服务了吗?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">苹果即将强制实施 ATS,你的APP准备好切换到HTTPS了吗?/a>?/p><h1 class="yibqv">3、对HTTPS性能的理?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">HTTP 有典型的几个问题,第一就是性能,HTTP 是基?TCP 的,所以网络层就不说了(快慢不?HTTP 的问题)?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">比较严重的问题在?HTTP 头是不能压缩的,每次要传递很大的数据包。另?HTTP 的请求模型是每个连接只能支持一个请求,所以会显得很慢?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">那么 HTTPS 是解决这些问题的吗?</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">不是,实际上 HTTPS 是在 HTTP 协议上又加了一层,会更慢,相信未来会逐步解决的。同?HTTPS 用到了很多加密算法,这些算法的执行也是会影响速度的?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">为什么说 HTTPS 提升了性能呢?因为只有支持?HTTPS,才能部?HTTP/2,?HTTP/2 协议会提升速度,能够有效减轻客户端和服务器端的压力,让响应更快速。有关HTTP/2详细文章可以看看?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路</a>》、?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">脑残式网络编程入??:快速理解HTTP/2的服务器推?Server Push)</a>》,这里只要知道一点:HTTP/2 能够加快速度的主要原因在于多路复用,同一个连接能够并行发送和接收多个请求?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 596px; max-height: 329px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 328.984px;"></div><div data-width="596" data-height="329" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 596px; height: 328.984px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-559dc02b17b5a68e.jpeg" src="//upload-images.jianshu.io/upload_images/1500839-559dc02b17b5a68e.jpeg" data-original-width="596" data-original-height="329" data-original-format="image/jpeg" data-original-filesize="19860" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><h1 class="yibqv">4、传统HTTP的安全性问?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">当用户在浏览器输入一个网址的时候,在地址栏上看到小锁图标,就会安心,潜意识的认为自己的上网行为是安全的,当然对于小白用户来说可能还不明白,但是未来会慢慢改善的(万事开头难嘛)?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">那么 HTTP 到底有什么安全问题呢,看几个例子?/span></p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">1)由于互联网传输是能够被拦截的,所以假如你的上网方式被别人控制了(没有绝对的安全),那么你的任何行为和信息攻击者都会知道,比如我们连上一个匿名的 WIFI,当你上网的时候,输入的网站密码可能就已经泄漏了;</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">2)当我们在上一个网站的时候,莫名其妙跳出一个广告(这个广告并不是这个网站的),那是因为访问的页面可能被运营商强制修改了(加入了他自己的内容,比如广告)?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">HTTP 最大的问题就在于数据没有加密,以及通信双方没有办法进行身份验证?confidentiality and authentication),由于数据没有加密,那么只要数据包被攻击者劫持,信息就泄漏了?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">身份验证的意思就是服务器并不知道连接它的客户端到底是谁,而客户端也不确定他连接的服务器就是他想连接的服务器,双方之间没有办法进行身份确认?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 500px; max-height: 333px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 333px;"></div><div data-width="500" data-height="333" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 500px; height: 333px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-a2adc91e58410e5b.jpg" src="//upload-images.jianshu.io/upload_images/1500839-a2adc91e58410e5b.jpg" data-original-width="500" data-original-height="333" data-original-format="image/jpeg" data-original-filesize="36222" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">有关HTTP比较好的文章,可以看看:</span></p><blockquote style="box-sizing: border-box; padding: 20px; margin: 0px 0px 25px; font-size: 16px; border-left-width: 6px; border-left-color: #b4b4b4; background-color: #f7f7f7; line-height: 30px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; word-break: break-word !important;"><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">网络编程懒人入门(?:深入浅出,全面理解HTTP协议</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路</a>?/p><p style="box-sizing: border-box; margin: 0px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">脑残式网络编程入??:HTTP协议必知必会的一些知?/a>?/p></blockquote><h1 class="yibqv">5、HTTPS 背后的密码学</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">为了解决 HTTP 的两个核心问题,HTTPS 出现了,HTTPS 包含了核心的几个部分:TLS 协议、OpenSSL,证书?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">什么是 OpenSSL 呢,它实现了世界上非常重要和多的密码算法,而密码学是解决问题最重要的一个环节?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">TLS 最重要的是握手的处理方式。证书的体系也很大,但是他们背后都是基于同样的密码学?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">1?/span>既然 HTTP 没有数据加密,那么我们就加密下,对称加密算法上场了,这种算法加密和解密要使用同一个密钥,通信双方需要知道这个密钥(或者每次协商一个),实际上这种方法不太可能,这涉及到密钥保密和配送的问题,一旦被攻击者知道了密钥,那么传输的数据等同没有加密?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 648px; max-height: 206px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 205.984px;"></div><div data-width="648" data-height="206" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 648px; height: 205.984px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-d340b0d71dd5bd2c.jpg" src="//upload-images.jianshu.io/upload_images/1500839-d340b0d71dd5bd2c.jpg" data-original-width="648" data-original-height="206" data-original-format="image/jpeg" data-original-filesize="18718" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">2?/span>这个时候非对称加密算法上场了,公钥和私钥是分开的,客户端保存公钥,服务器保存私钥(不会公开),这时候好像能够完美解决问题了?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">但实际上会存在两个问题,第一就是非对称加密算法运算很慢,第二就是会遇到中间人攻击问题?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">先说说中间人攻击的问题,假如使用非对称加密算法,对于客户端来说它拿到的公钥可能并不是真正服务器的公钥,因为客户端上网的时候可能不会仔细分辨某个公钥是和某个公司绑定的,假如错误的拿到攻击者的公钥,那么他发送出去的数据包被劫持后,攻击者用自己的私钥就能反解了?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">3?/span>接下来如何解决公钥认证的问题呢?证书出现了,证书是由 CA 机构认证的,客户端都充分信任它,它能够证明你拿到的公钥是特定机构的,然后就能使用非对称加密算法加密了?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">证书是怎么加密的呢?实际上也是通过非对称加密算法,但是区别在于证书是用私钥加密,公钥解密?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">CA 机构会用自己的私钥加密服务器用户的公钥,而客户端则用 CA 机构的公钥解出服务器的公钥。听上去有点晕,仔细体会下。这方面的知识,可以详细阅读:?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(七):如果这样来理解HTTPS,一篇就够了</a>》?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">4?/span>上面说了非对称加密算法加密解密非常耗时,对?HTTP 这样的大数据包,速度就更慢了,这时候可以使用对称加密算法,这个密钥是由客户端和服务器端协商出来,并由服务器的公钥进行加密传递,所以不存在安全问题?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">5?/span>另外客户端拿到证书后会验证证书是否正确,它验证的手段就是通过 Hash 摘要算法,CA 机构会将证书信息通过 Hash 算法运算后再用私钥加密,客户端用 CA 的公钥解出后,再计算证书?Hash 摘要值,两者一致就说明验证身份通过?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">6?/span>HTTPS 解决的第三个问题是完整性问题,就是信息有没有被篡改(信息能够被反解),用的?HMAC 算法,这个算法和 Hash 方法差不多,但是需要传递一个密钥,这个密钥就是客户端和服务器端上面协商出来的?/p><h1 class="yibqv">附录:更多安全方面的文章</h1><blockquote style="box-sizing: border-box; padding: 20px; margin: 0px 0px 25px; font-size: 16px; border-left-width: 6px; border-left-color: #b4b4b4; background-color: #f7f7f7; line-height: 30px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; word-break: break-word !important;"><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(一):正确地理解和使用Android端加密算?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(二):探讨组合加密算法在IM中的应用</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(三):常用加解密算法与通讯安全讲解</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(四):实例分析Android中密钥硬编码的风?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(五):对称加密技术在Android平台上的应用实践</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(六):非对称加密技术的原理与应用实?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">传输层安全协议SSL/TLS的Java平台实现简介和Demo演示</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">理论联系实际:一套典型的IM通信协议设计详解(含安全层设计)</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">来自阿里OpenIM:打造安全可靠即时通讯服务的技术实践分?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">简述实时音视频聊天中端到端加密(E2EE)的工作原理</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">移动端安全通信的利?#8212;—端到端加密(E2EE)技术详?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">Web端即时通讯安全:跨站点WebSocket劫持漏洞详解(含示例代?</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">通俗易懂:一篇掌握即时通讯的消息传输安全原?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">IM开发基础知识补课(?:正确理解HTTP短连接中的Cookie、Session和Token</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">快速读懂量子通信、量子加密技?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">即时通讯安全篇(七):如果这样来理解HTTPS原理,一篇就够了</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">一分钟理解 HTTPS 到底解决了什么问?/a>?/p><p style="box-sizing: border-box; margin: 0px; line-height: 1.7; word-break: break-word !important;">>> <a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">更多同类文章 ……</a></p></blockquote><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">(本文同步发布于?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">//www.52im.net/thread-2027-1-1.html</a>?/p><img src ="//www.ot7t.com.cn/jb2011/aggbug/433451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-10-24 14:05 <a href="//www.ot7t.com.cn/jb2011/archive/2018/10/24/433451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新浪微博技术分享:微博实时直播答题的百万高并发架构实践 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/10/22/433450.htmlJack JiangJack JiangMon, 22 Oct 2018 04:43:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/10/22/433450.html//www.ot7t.com.cn/jb2011/comments/433450.html//www.ot7t.com.cn/jb2011/archive/2018/10/22/433450.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433450.html//www.ot7t.com.cn/jb2011/services/trackbacks/433450.html阅读全文

Jack Jiang 2018-10-22 12:43 发表评论
]]>
一套高可用、易伸缩、高并发的IM群聊架构方案设计实践 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/10/17/433443.htmlJack JiangJack JiangWed, 17 Oct 2018 06:31:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/10/17/433443.html//www.ot7t.com.cn/jb2011/comments/433443.html//www.ot7t.com.cn/jb2011/archive/2018/10/17/433443.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433443.html//www.ot7t.com.cn/jb2011/services/trackbacks/433443.html阅读全文

Jack Jiang 2018-10-17 14:31 发表评论
]]>
新手入门:零基础理解大型分布式架构的演进历史、技术原理、最佳实?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/10/15/433439.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Mon, 15 Oct 2018 02:57:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/10/15/433439.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433439.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/10/15/433439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433439.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433439.html</trackback:ping><description><![CDATA[<p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">本文引用了阿豪的微信公众号文章分享,感谢原作者的分享?/p><h1 class="yibqv">1、前言</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">随着社会的发展、互联网技术的进步,以前的大型机服务端架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的互联网分布式架构?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">从若干年前大行其道的传统大型机到如今的分布式架构,技术发展已经经历了好几个阶段,我们只有弄明白典型互联网架构在各个阶段的演进,才能更好地理解和体会分布式架构的好处,从而有助于我们序设计适合于自已公司、产品或项目的架构(也包括设计即时通讯网专注的IM和消息推送这类系统,因为技术思路的原理都是一脉相承的)。那么本文我们就来聊聊分布式架构的演进过程,希望能给大家带来眼前一亮的感觉?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">点评?/span>即时通讯网作为IM和推送技术研究、学习和分享的社区,整理了大量的跟IM和推广技术有关的基础技术资料(比如网络基础、通信理论、架构基础等),本文内容虽然看起来跟IM和推送技术没有直接的关联性,但因为设计IM和推送系统的技术思路和原理跟典型大型互联网分布式架构都是一脉相承的,因而读懂本文内容对于IM和推送系统的架构设计同样大有裨益?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 625px; max-height: 214px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 214px;"></div><div data-width="625" data-height="214" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 625px; height: 214px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-e1f6a65631bb4982.jpg" src="//upload-images.jianshu.io/upload_images/1500839-e1f6a65631bb4982.jpg" data-original-width="625" data-original-height="214" data-original-format="image/jpeg" data-original-filesize="55677" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">学习交流?/span></p><blockquote style="box-sizing: border-box; padding: 20px; margin: 0px 0px 25px; font-size: 16px; border-left-width: 6px; border-left-color: #b4b4b4; background-color: #f7f7f7; line-height: 30px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; word-break: break-word !important;"><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">- 即时通讯开发交?群:<a target="_blank" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">185926912</a>[推荐]</p><p style="box-sizing: border-box; margin: 0px; line-height: 1.7; word-break: break-word !important;">- 移动端IM开发入门文章:?a target="_blank" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">新手入门一篇就够:从零开发移动端IM</a>?/p></blockquote><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">(本文同步发布于?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">//www.52im.net/thread-2007-1-1.html</a>?/p><h1 class="yibqv">2、相关文?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">如果你已完全掌握本文的相关知识,请移步继续阅读即时通讯网整理的另一篇:?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面?/a>》,该文适合对互联网架构知识有一定了解的程序员阅读和学习,都是不可能多得的技术干货?/p><h1 class="yibqv">3、技术背景说?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">我们都知道一个成熟的大型网站的系统架构并非一开始就设计的非常完美,也没有一开始就具备高性能、高并发、高可用、安全性等特性,而是随着用户量的增加、业务功能的扩展逐步演变过来的,慢慢的完善的?在这个过程中,开发模式、技术架构等都会随着迭代发生非常大的变化?而针对不同业务特征的系统,各自都会有自己的侧重点,例如像淘宝这类的网站,要解决的重点问题就是海量商品搜索、下单、支付等问题; 像腾讯这类的网站,要解决的是数亿级别用户的实时消息传?而像百度这类的公司所要解决的又是海量数据的搜索。每一个种类的业务都有自己不同的系统架构?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">为了方便展开本文要讲解的内容,我们来简单模拟一个架构演变过程: 我们?javaweb 为例,来搭建一个简单的电商系统,从这个系统中来看系统的演变过程。要注意的是接下来的演示模型?关注的是数据量、访问量提升,网站结构的变化?而不关注具体业务的功能点。其次,这个过程是为了让大家能更好的了解网站演进过程中的一些问题和应对策略?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">假如我们要设计的互联网系统需要具备以下功?</span></p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">1)用户模块:用户注册和管理;</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">2)商品模?商品展示和管理;</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">3)交易模?创建交易及支付结算?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">请带着上述3个技术点,继续深入阅读本文的正文内容。干货马上开始了。。?/p><h1 class="yibqv">4、架构演进阶段一:单应用架构</h1><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 352px; max-height: 320px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 320px;"></div><div data-width="352" data-height="320" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 352px; height: 320px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-3d2d90961f60bd0f.jpg" src="//upload-images.jianshu.io/upload_images/1500839-3d2d90961f60bd0f.jpg" data-original-width="352" data-original-height="320" data-original-format="image/jpeg" data-original-filesize="27794" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">如上图所示,这个阶段是网站的初期,也可以认为是互联网发展的早期,系统架构如上图所示。我们经常会在单台服务器上运行我们所有的程序和软件?把所有软件和应用都部署在一台机器上,这样就完成一个简单系统的搭建,这个阶段的讲究的是效率。效率决定生死?/p><h1 class="yibqv">5、架构演进阶段二:应用服务器和数据库服务器分?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">随着网站的上线,访问量逐步上升,服务器的负载慢慢提高,我们应该在服务器还没有超载的时候就做好规划、提升网站的负载能力。假若此时已经没办法在代码层面继续优化提高,那么在单台机器的性能遇到瓶颈的时候,增加机器是一个比较简单好用的方式,投入产出比相当高。这个阶段增加机器的主要目的是将 web 服务器和 数据库服务器拆分开来,这样做的话不仅提高了单机的负载能力,也提高了整个系统的容灾能力?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 492px; max-height: 350px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 350px;"></div><div data-width="492" data-height="350" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 492px; height: 350px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-a2de5f5f47a06f3c.jpg" src="//upload-images.jianshu.io/upload_images/1500839-a2de5f5f47a06f3c.jpg" data-original-width="492" data-original-height="350" data-original-format="image/jpeg" data-original-filesize="39337" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">这个阶段的系统架构如上图所示,应用服务器和数据库服务器完全隔离开来,相互互不影响,大大减少了网站宕机的风险,此阶段我们已经开始关注到应用服务器的管理了?nbsp;</p><h1 class="yibqv">6、架构演进阶段三:应用服务器集群</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">这个阶段,随着访问量的继续不断增加,单台应用服务器已经无法满足我们的需求?假设我的数据库服务器还没有遇到性能问题,那我们可以通过增加应用服务器的方式来将应用服务器集群化,这样就可以将用户请求分流到各个服务器中,从而达到继续提升系统负载能力的目的。此时各个应用服务器之间没有直接的交互,他们都是依赖数据库各自对外提供服务?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 622px; max-height: 319px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 319.016px;"></div><div data-width="622" data-height="319" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 622px; height: 319px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-5bd6aacd75564e8c.jpg" src="//upload-images.jianshu.io/upload_images/1500839-5bd6aacd75564e8c.jpg" data-original-width="622" data-original-height="319" data-original-format="image/jpeg" data-original-filesize="48699" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">系统架构发展到这个阶段,各种问题也会接踵而至?/span></p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">1)用户请求交由谁来转发到具体的应用服务器?谁来负责负载均衡)?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">2)用户如果每次访问到的服务器不一样,那么如何维护session,达到session共享的目的?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">那么此时,系统架构又会变成如下方式:</p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 673px; max-height: 556px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 556.031px;"></div><div data-width="673" data-height="556" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 673px; height: 556px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-3f8539e13254f731.jpg" src="//upload-images.jianshu.io/upload_images/1500839-3f8539e13254f731.jpg" data-original-width="673" data-original-height="556" data-original-format="image/jpeg" data-original-filesize="46966" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">负载均衡又可以分为软负载和硬负载。软负载我们可以选择Nginx、Apache等,硬负载我们可以选择F5等。而session共享问题我们可以通过配置tomcat的session共享解决?/p><h1 class="yibqv">7、架构演进阶段四:数据库压力变大,数据库读写分离</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">架构演变到上面的阶段,并不是终点。通过上面的设计,应用层的性能被我们拉上来了, 但数据库的负载也在逐渐增大,那如何去提高数据库层面的性能呢?有了前面的设计思路以后,我们自然也会想到通过增加服务器来提高性能。但假如我们单纯的把数据库一分为二,然后对于数据库的请求,分别负载到两台数据库服务器上,那必定会造成数据库数据不统一的问题?nbsp;</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">所以我们一般先考虑将数据库读写分离,如下图所示?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 676px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 676.047px;"></div><div data-width="760" data-height="734" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 676px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-89ff21ca22421c6b.jpg" src="//upload-images.jianshu.io/upload_images/1500839-89ff21ca22421c6b.jpg" data-original-width="760" data-original-height="734" data-original-format="image/jpeg" data-original-filesize="65241" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;"><span style="box-sizing: border-box; font-weight: 700;">这个架构设计的变化会带来如下几个问题?/span></p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">1)主从数据库之间的数据需要同?可以使用 mysql 自带?master-slave 方式实现主从复制 )?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">2)应用中需要根据业务进行对应数据源的选择( 采用第三方数据库中间件,例如 mycat )?/p><h1 class="yibqv">8、架构演进阶段五:使用搜索引擎缓解读库的压力</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">我们都知道数据库常常对模糊查找效率不是很高,像电商类的网站,搜索是非常核心的功能,即使是做了读写分离,这个问题也不能得到有效解决。那么这个时候我们就需要引入搜索引擎了,使用搜索引擎能够大大提升我们系统的查询速度,但同时也会带来一 些附加的问题,比如维护索引的构建、数据同步到搜索引擎等?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 581px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 581.766px;"></div><div data-width="882" data-height="733" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 581px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-50f72efdb31c4118.jpg" src="//upload-images.jianshu.io/upload_images/1500839-50f72efdb31c4118.jpg" data-original-width="882" data-original-height="733" data-original-format="image/jpeg" data-original-filesize="78316" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><h1 class="yibqv">9、架构演进阶段六:引入缓存机制缓解数据库的压?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">然后,随着访问量的持续不断增加,逐渐会出现许多用户访问同一内容的情况,那么对于这些热点数据,没必要每次都从数据库重读取,这时我们可以使用到缓存技术,比如 redis、memcache 来作为我们应用层的缓存?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">另外在某些场景下,如我们对用户的某些 IP 的访问频率做限制?那这个放内存中就又不合适,放数据库又太麻烦了,那这个时候可以使?Nosql 的方式比?mongDB 来代替传统的关系型数据库?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 536px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 536.547px;"></div><div data-width="925" data-height="709" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 536px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-954710e120ff7cbe.jpg" src="//upload-images.jianshu.io/upload_images/1500839-954710e120ff7cbe.jpg" data-original-width="925" data-original-height="709" data-original-format="image/jpeg" data-original-filesize="81274" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><h1 class="yibqv">10、架构演进阶段七:数据库的水?垂直拆分</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">我们的网站演进的变化过程,交易、商品、用户的数据都还在同一 个数据库中,尽管采取了增加缓存,读写分离的方式,但是随着?据库的压力持续增加,数据库的瓶颈仍然是个最大的问题。因此我 们可以考虑对数据的垂直拆分和水平拆分?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 546px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 546.125px;"></div><div data-width="919" data-height="717" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 546px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-586915dbf7b1ab89.jpg" src="//upload-images.jianshu.io/upload_images/1500839-586915dbf7b1ab89.jpg" data-original-width="919" data-original-height="717" data-original-format="image/jpeg" data-original-filesize="86148" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">垂直拆分:把数据库中不同业务数据拆分到不同的数据库;</p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">水平拆分:把同一个表中的数据拆分到两个甚至更多的数据库中,水平拆分的原因是某些业务数据量已经达到了单个数据库的瓶颈,这时可以采取将表拆分到多个数据库中?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 538px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 538.781px;"></div><div data-width="916" data-height="705" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 538px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-129ed1bb7db0ccd1.jpg" src="//upload-images.jianshu.io/upload_images/1500839-129ed1bb7db0ccd1.jpg" data-original-width="916" data-original-height="705" data-original-format="image/jpeg" data-original-filesize="88949" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><h1 class="yibqv">11、架构演进阶段八:应用的拆分</h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">随着业务的发展,业务量越来越大,应用的压力越来越大。工程规模也越来越庞大。这个时候就可以考虑将应用拆分,按照领域模型将我们的用户、商品、交易拆分成多个子系统?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 549px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 549.906px;"></div><div data-width="919" data-height="722" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 549px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-fdc3933212712ca2.jpg" src="//upload-images.jianshu.io/upload_images/1500839-fdc3933212712ca2.jpg" data-original-width="919" data-original-height="722" data-original-format="image/jpeg" data-original-filesize="100402" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">这样拆分以后,可能会有一些相同的代码,比如用户操作,在商品和交易都需要查询,所以会导致每个系统都会有用户查询访问相关操作。这些相同的操作一定是要抽象出来,否则就是一个坑。所以通过走服务化路线的方式来解决?/p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px; text-align: center; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff;"><div style="box-sizing: border-box; position: relative; z-index: 100; background-color: transparent; transition: background-color 0.1s linear 0s; margin: 0px auto; max-width: 700px; max-height: 544px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 544.109px;"></div><div data-width="916" data-height="712" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 700px; height: 544px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/1500839-067d257e12ab743c.jpg" src="//upload-images.jianshu.io/upload_images/1500839-067d257e12ab743c.jpg" data-original-width="916" data-original-height="712" data-original-format="image/jpeg" data-original-filesize="98993" style="box-sizing: border-box; border: 0px; vertical-align: middle; transition: all 0.15s linear 0s; z-index: 100; opacity: 1; max-width: 100%; height: auto; cursor: zoom-in; display: block; filter: blur(0px);" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">那么服务拆分以后,各个服务之间如何进行远程通信? 通过 RPC 技术,比较典型的有:dubbo、webservice、hessian、http、RMI 等等。前期通过这些技术能够很好的解决各个服务之间通信问题,但是, 互联网的发展是持续的,所以架构的演变和优化也还在持续?/p><h1 class="yibqv">12、本文小?/h1><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">通过本文,我们通过一个电商的案例,就了解到了分布式架构的演进过程,一环套一环,环环紧密相扣。都是通过业务量和访问量的提升来考虑重构架构设计,以便能够适应当前的环境。不可一蹴而就,也急不来,初创企业必须稳扎稳打,一步一个脚印的走出一条专属自己的路?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">本文主要针对的是零基础初学者,如果您想深入了解相关知识,请继续阅读?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面?/a>》?/p><h1 class="yibqv">附录:更多架构方面的技术文?/h1><blockquote style="box-sizing: border-box; padding: 20px; margin: 0px 0px 25px; font-size: 16px; border-left-width: 6px; border-left-color: #b4b4b4; background-color: #f7f7f7; line-height: 30px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; word-break: break-word !important;"><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">浅谈IM系统的架构设?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">简述移动端IM开发的那些坑:架构设计、通信协议和客户端</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">一套海量在线用户的移动端IM架构设计实践分享(含详细图?</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">一套原创分布式即时通讯(IM)系统理论架构方案</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">从零到卓越:京东客服即时通讯系统的技术架构演进历?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">蘑菇街即时通讯/IM服务器开发之架构选择</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">微信后台基于时间序的海量数据冷热分级架构设计实践</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">微信技术总监谈架构:微信之道——大道至简(演讲全文)</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">如何解读《微信技术总监谈架构:微信之道——大道至简?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">快速裂变:见证微信强大后台架构??的演进历程(一?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">17年的实践:腾讯海量产品的技术方法论</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">移动端IM中大规模群消息的推送如何保证效率、实时性?</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">现代IM系统中聊天消息的同步和存储方案探?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">IM开发基础知识补课(?:如何设计大量图片文件的服务端存储架构?</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">IM开发基础知识补课(?:快速理解服务端数据库读写分离原理及实践建议</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">IM开发基础知识补课(?:正确理解HTTP短连接中的Cookie、Session和Token</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">WhatsApp技术实践分享:32人工程团队创造的技术神?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">微信朋友圈千亿访问量背后的技术挑战和实践总结</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">王者荣耀2亿用户量的背后:产品定位、技术架构、网络方案等</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">IM系统的MQ消息中间件选型:Kafka还是RabbitMQ?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">以微博类应用场景为例,总结海量社交系统的架构设计步?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">快速理解高性能HTTP服务端的负载均衡技术原?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">子弹短信光鲜的背后:网易云信首席架构师分享亿级IM平台的技术实?/a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">IM开发基础知识补课(?:通俗易懂,正确理解并用好MQ消息队列</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">微信技术分享:微信的海量IM聊天消息序列号生成实践(容灾方案篇)</a>?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; line-height: 1.7; word-break: break-word !important;">?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">新手入门:零基础理解大型分布式架构的演进历史、技术原理、最佳实?/a>?/p><p style="box-sizing: border-box; margin: 0px; line-height: 1.7; word-break: break-word !important;">>> <a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">更多同类文章 ……</a></p></blockquote><p style="box-sizing: border-box; margin: 0px 0px 25px; color: #2f2f2f; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; background-color: #ffffff; word-break: break-word !important;">(本文同步发布于?a target="_blank" rel="nofollow" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">//www.52im.net/thread-2007-1-1.html</a>?/p><img src ="//www.ot7t.com.cn/jb2011/aggbug/433439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-10-15 10:57 <a href="//www.ot7t.com.cn/jb2011/archive/2018/10/15/433439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇) - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/10/10/433431.htmlJack JiangJack JiangWed, 10 Oct 2018 07:16:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/10/10/433431.html//www.ot7t.com.cn/jb2011/comments/433431.html//www.ot7t.com.cn/jb2011/archive/2018/10/10/433431.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433431.html//www.ot7t.com.cn/jb2011/services/trackbacks/433431.html阅读全文

Jack Jiang 2018-10-10 15:16 发表评论
]]>
手把手教你读取Android版微信和手Q的聊天记?仅作技术研究学? - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/10/08/433426.htmlJack JiangJack JiangMon, 08 Oct 2018 03:33:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/10/08/433426.html//www.ot7t.com.cn/jb2011/comments/433426.html//www.ot7t.com.cn/jb2011/archive/2018/10/08/433426.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433426.html//www.ot7t.com.cn/jb2011/services/trackbacks/433426.html阅读全文

Jack Jiang 2018-10-08 11:33 发表评论
]]>
腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/09/29/433421.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Sat, 29 Sep 2018 03:05:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/09/29/433421.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433421.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/09/29/433421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433421.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433421.html</trackback:ping><description><![CDATA[     摘要: 1、概述本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征、差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebRTC互通的实现思路以及技术方案。希望能带给你启发。学习交流:- 即时通讯开发交?群:185926912[推荐]- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》(本文同步发布于:ht...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/09/29/433421.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/jb2011/" target="_blank">Jack Jiang</a> 2018-09-29 11:05 <a href="//www.ot7t.com.cn/jb2011/archive/2018/09/29/433421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IM开发基础知识补课(?:通俗易懂,正确理解并用好MQ消息队列 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/09/26/433398.htmlJack JiangJack JiangWed, 26 Sep 2018 06:52:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/09/26/433398.html//www.ot7t.com.cn/jb2011/comments/433398.html//www.ot7t.com.cn/jb2011/archive/2018/09/26/433398.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433398.html//www.ot7t.com.cn/jb2011/services/trackbacks/433398.html阅读全文

Jack Jiang 2018-09-26 14:52 发表评论
]]>
脑残式网络编程入??:每天都在用的Ping命令,它到底是什么? - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/09/21/433391.htmlJack JiangJack JiangFri, 21 Sep 2018 10:12:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/09/21/433391.html//www.ot7t.com.cn/jb2011/comments/433391.html//www.ot7t.com.cn/jb2011/archive/2018/09/21/433391.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433391.html//www.ot7t.com.cn/jb2011/services/trackbacks/433391.html阅读全文

Jack Jiang 2018-09-21 18:12 发表评论
]]>
知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/09/18/433386.htmlJack JiangJack JiangTue, 18 Sep 2018 04:31:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/09/18/433386.html//www.ot7t.com.cn/jb2011/comments/433386.html//www.ot7t.com.cn/jb2011/archive/2018/09/18/433386.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433386.html//www.ot7t.com.cn/jb2011/services/trackbacks/433386.html阅读全文

Jack Jiang 2018-09-18 12:31 发表评论
]]>
迈向高阶:优秀Android程序员必知必会的网络基础 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/jb2011/archive/2018/09/17/433383.htmlJack JiangJack JiangMon, 17 Sep 2018 02:44:00 GMT//www.ot7t.com.cn/jb2011/archive/2018/09/17/433383.html//www.ot7t.com.cn/jb2011/comments/433383.html//www.ot7t.com.cn/jb2011/archive/2018/09/17/433383.html#Feedback0//www.ot7t.com.cn/jb2011/comments/commentRss/433383.html//www.ot7t.com.cn/jb2011/services/trackbacks/433383.html阅读全文

Jack Jiang 2018-09-17 10:44 发表评论
]]>
子弹短信光鲜的背后:网易云信首席架构师分享亿级IM平台的技术实?/title><link>//www.ot7t.com.cn/jb2011/archive/2018/09/14/433377.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Fri, 14 Sep 2018 05:50:00 GMT</pubDate><guid>//www.ot7t.com.cn/jb2011/archive/2018/09/14/433377.html</guid><wfw:comment>//www.ot7t.com.cn/jb2011/comments/433377.html</wfw:comment><comments>//www.ot7t.com.cn/jb2011/archive/2018/09/14/433377.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/jb2011/comments/commentRss/433377.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/jb2011/services/trackbacks/433377.html</trackback:ping><description><![CDATA[     摘要: 本文原文内容来自InfoQ的技术分享,本次有修订、勘误和加工,感谢原作者的分享?、前言自从2018??0日子弹短信在锤子发布会露面之后(详见《老罗最新发布了“子弹短信”这款IM,主打熟人社交能否对标微信?》),关于它的讨论不绝于耳,7 天融?1.5 亿的传闻更是将它推到了风口浪尖(请见《[资讯] “子弹短信”发布一周即融得1.5亿资金》)?...  <a href='//www.ot7t.com.cn/jb2011/archive/2018/09/14/433377.html'>阅读全文</a><img src ="//www.ot7t.com.cn/jb2011/aggbug/433377.html" width = "1" height = "1" /><br><br><div align=right><a href="//www.ot7t.com.cn/" title="四川福利彩票快乐12">四川福利彩票快乐12</a> 2018-09-14 13:50 <a href="//www.ot7t.com.cn/jb2011/archive/2018/09/14/433377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <script>(function(){ var src = (document.location.protocol == "http:") ? "//js.passport.qihucdn.com/11.0.1.js?f7a6bc378844a5df707c414e6b6fea33":"https://jspassport.ssl.qhimg.com/11.0.1.js?f7a6bc378844a5df707c414e6b6fea33"; document.write('<script src="' + src + '" id="sozz"><\/script>'); })(); </script>