学习豆瓣好榜样--网站架构

news/2024/5/20 15:31:15/文章来源:https://blog.csdn.net/weixin_34109408/article/details/86170753

这次的 QCon 会议,《豆瓣网技术架构的发展历程》这个议题差不多是最受关注的。洪强宁在演讲开始告诫大家期望值不要太高,我还是相信不会有人觉得失望的。

豆瓣网首席架构师洪强宁在演讲

先说几句题外话,整个演讲听下来,我们会发现豆瓣在发展的过程中也是有点弯路,这些是一个网站发展过程中的宝贵财富,能把自己有周折的地方大大方方的拿出来,是难能可贵的事情。尽管豆瓣批露了很多架构细节出来,也不会(也不可能)有哪个公司一拿到这些东西,就能照猫画虎再做一个豆瓣并且超过豆瓣。从某种程度上来说这体现了豆瓣同学们的气度,这是令国内大多数公司汗颜的。很多公司只愿索取,而不愿奉献哪怕一点点出来,用这样封闭的心态对待技术其实是小家子气,守财奴的思维。技术只有为更多人所用才是大道。

议论说完,再来叙述。写点对豆瓣架构的体会。戏法人人会变,各有巧妙不同。有些东西大家都在用(Nginx),但是有人的用得好,有人用了比不用还差。所以,需要逐渐总结,改进。学习别人的架构设计,不是要照搬,而是借鉴其思想。

技术的选择

一直以来,豆瓣在技术上都给人很前卫的感觉,看起来好像什么新用什么,其实是不是的,他们一直是"用已掌握的技术解决问题",现有的东西如果够用,那么就没必要一定迁移到新的上面去,而转换往往是为了解决当前问题。另外,换用新的东西,要有足够的驾驭能力,从演讲中得知,豆瓣曾有几次在临上线前发现基础库的Bug(比如 Libmemcached 的一致性哈希相关的Bug),技术团队能在第一时间有进行修复并且提交给开源社区。否则的话,就变成了一种错误决策了。

磁盘转速

小话题。如果可能,直接买 15000 转的磁盘好了。10000 转的磁盘可能省钱,但这东西部署了之后几乎就不太可能升级。所以,如果是初创公司,我的建议就是买高速磁盘,因为业务如果发展快了的话,先前对机器的定位也可能发生变化。

杜绝远程 I/O

在普通的 TCP/IP 网络的环境下,不要进行远程数据写入操作。跨网络操作的延时看似没什么大不了的,但一旦达到临界点就回天乏术。这个事情基本是不撞南墙不回头,有的技术人员总要亲身体验一把才肯罢休。

持续保持 URL 友好风格

演讲中有多次提到一致性 URL ,其实体现了豆瓣对 URL Rewrite 的重视,结构调整,或者应用程序变化的时候,URL 最好做到"用户友好"的。这算是"软技术",但是应该加以最大的重视。

数据库复制延迟问题

对于 MySQL 复制的环境,如果Slave 上有读取操作,那么有些情况下可能因为 Master 和 Slave 节点数据不一致对用户造成困惑。如果从一致性的角度上考虑,其实也不复杂:,只需要对"知道数据发生了变化的用户"提供一致性就行了(基本上就是发起变更的用户),不知道数据发生变化的用户对数据的不一致有一定的"容忍程度",当然说着简单,实现起来还是需要技巧和精巧的。

大量小文件同步问题:Merkle tree

关于大量小文件的同步问题,很多上了规模的网站都会遇到,如果设计得不好或者是比较偷懒,用传统的办法(比如 rsync 之类的老模式)很容易触发问题,也浪费资源。DoubanFS 是用 Merkle tree(Hash Tree)的方式进行数据同步的。对这个问题的具体描述可以参见《大量小文件的实时同步方案》。Merkle Tree 是个很精巧的思路,ZFS 在用(refer),Amazon Dynamo 系统也在用。

不会一会儿又有人留言说:我们早就采用这个思路了...... 我这里预先来句回答:拜托,你早点共享啊?

--EOF--

完整的 PPT 过几天 InfoQ 中文站会发布,我这里就不掠美了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_765742.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几个前端必用的网站

阿里矢量图标库 阿里iconfont 使用 需要先登录 <div class"img"><svg t"1625021228288" class"icon" viewBox"0 0 1024 1024" version"1.1" xmlns"http://www.w3.org/2000/svg" p-id"1478"…

提高PHP网站安全性的5个技巧

2019独角兽企业重金招聘Python工程师标准>>> 技巧1&#xff1a;使用合适的错误报告 一般在开发过程中&#xff0c;很多程序员总是忘了制作程序错误报告&#xff0c;这是极大的错误&#xff0c;因为恰当的错误报告不仅仅是最好的调试工具&#xff0c;也是极佳的安全漏…

SEO系列一:SEO是什么?SEO有什么意义?

最近周珍都没怎么写文章的&#xff0c;总感觉好像是没有什么话题可以写的。后来被某某人小小的教育了一下&#xff0c;这才恍然醒悟过来。所以决定开始写一个关于SEO基 础知识的系列文章。当然&#xff0c;我写这个系列的文章&#xff0c;主要还有二个目的。一是想给后来的SEO新…

19家网站涉嫌传播低俗内容 网络低俗之风不可长

朱慧卿绘 1月5日&#xff0c;互联网违法和不良信息举报中心根据公众举报&#xff0c;公布19家存在大量违反社会公德、损害青少年身心健康、低俗内容的网站&#xff0c;谷歌、百度、新浪、搜狐等国内多家知名网站位列其中。 这是新闻办、工业和信息化部、公安部等七部门在全国开…

iis6 部署 asp.net mvc 网站

此文乃在参考部分网络文章之后&#xff0c;亲自试验后发布&#xff0c;目的有二&#xff0c;一来让用文字记录好查阅&#xff1b;二来为更多的网友参考。 试验环境&#xff1a; server2003 SqlServer2005iis6 需要准备的工具包&#xff1a;.net framework 3.5 sp…

优化网站设计(十一):避免重定向

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过&#xff0c;我在不同的场合也分享过这样的话题。 作为通用的原则&#xff0c;雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices f…

ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询

上次把咨询的架构搭好了&#xff0c;现在分两次来完成咨询&#xff1a;1、用户部分&#xff0c;2管理部分。这次实现用户部分&#xff0c;包含两个功能&#xff0c;查看我的咨询和进行咨询。 目录&#xff1a; ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一)…

JAVA推荐网站

为什么80%的码农都做不了架构师&#xff1f;>>> 语言&#xff1a;中文简介&#xff1a;CSDN 个人最喜欢的网站 http://www.csdn.net/ 语言&#xff1a;中文简介&#xff1a;Java Eye http://www.javaeye.com/ 语言&#xff1a;中文简介&#xff1a;Java中文网站 ht…

关于网站分页

今天写代码遇到写一个分页&#xff0c;而以前写的分页自己又不太满意&#xff0c;就重新写了一个。 效果如图&#xff1a; 写完后&#xff0c;感觉代码太多&#xff0c;不太完善&#xff0c;不过功能实现了 <?phpswitch ($page){case 1:echo <div class"movie_page…

Windows系统服务器(网站)安全注意事项

2019独角兽企业重金招聘Python工程师标准>>> 年未了&#xff0c;网络安全越发显得重要&#xff0c;最近黑客攻击事件是越来越多了&#xff0c;对于站长来说有时简直就是个恶梦。 这里我针对自己做站的一些安全经验&#xff0c;跟大家一起分享&#xff0c;也许我说的…

IIS 发布网站

1、添加网站 2、物理路径指向web项目根目录 3、添加默认文档 以下引用百度 确保系统上已经安装IIS&#xff0c;如果没有安装 请到【控制面板】→【程序】→【程序和功能】→【打开或关闭Windows功能】 选中Internet 信息服务下面的所有选项&#xff0c;确定 步骤阅读 2获得发布…

网站URL路径的中文问题[中文路径编码]【转】

原文地址&#xff1a;http://hi.baidu.com/iqpkeq/item/63eeb1136469d1a4ffded536 网站URL路径的中文问题 [中文路径编码] 导读&#xff1a;网站URL路径一般都是用英文来表述&#xff0c;不过在国内很多情况下能看到网页URL中使用中文&#xff0c;因此中文的编码就会成为网站路…

网站计数的实现jsp

在一些博客或论坛里经常出现一些访问次数的字样&#xff0c;这就是通常说的网站计数器。进行网站计数器开发需要注意以下3个问题&#xff1a;1、网站的来访人数很多&#xff0c;所以必须用大整数来表示&#xff1b;2、每个用户在第一次访问时需要计数&#xff0c;重复刷新页面不…

服务器日志法网站分析的原理及优缺点

网站分析收集数据的方式其实有五、六种之多&#xff0c;我们最常见的有三种&#xff0c;分别是&#xff1a;服务器日 志&#xff08;Server Log&#xff09;、页面标记&#xff08;Page Tag&#xff09;和客户端监测软件收集&#xff08;Client End/Desktop&#xff09;。我的C…

python爬虫: 爬一个英语学习网站

爬虫的基本概念 关于爬虫的基本概念, 推荐博客https://xlzd.me/ 里面关于爬虫的介绍非常通俗易懂. 简单地说,在我们输入网址后到可以浏览网页,中间浏览器做了很多工作, 这里面涉及到两个概念&#xff1a; IP地址&#xff1a; IP地址是你在网络上的地址&#xff0c;大部分情况下…

网站建设前期,我们因考虑的优化因素

1.网站建设前期的重要性和关键点网站前期的建设和seo优化一定有精密的相连&#xff0c;一个新网站从你一上线后就能看出你的网站是否能走得更远&#xff0c;很多人在做站的时候都不会去考虑这个因素&#xff0c;所以往往网站上市后优化了1个月左右的时候基本就没信心了。被百度…

【已解决】PHP项目需求:在现有网站中每个页面增加一个get参数

2019独角兽企业重金招聘Python工程师标准>>> 需求&#xff1a;在这个现有的网站之中每个页面增加一个get参数&#xff0c;保证用户分享出去链接均有推广用户id。 想法一&#xff1a;给类似tp框架之中U函数&#xff08;构造URL链接函数&#xff09;增加一个get参数&a…

[转]10个学习Android开发的网站推荐

本文转自&#xff1a;http://blog.csdn.net/i_lovefish/article/details/43950893 1. Android Developers 作为一个Android开发者&#xff0c;官网的资料当然不可错过&#xff0c;从设计&#xff0c;培训&#xff0c;指南&#xff0c;文档&#xff0c;都不应该错过&#xff0c;…

使用js检测用户是否在用微信浏览器浏览网站

现在大部分的公司喜欢把自己发布的网址转成二维码&#xff0c;然后用户只要用手机扫一下就能登录。而大部分的用户都喜欢(可能不知道还有其他扫码工具)用微信来扫二维码&#xff0c;大家都知道微信里面自带的浏览器会屏蔽大部分的外部网站&#xff0c;只能点击右上角图标&#…

【转】大访问量系统的设计(二)——高并发高流量网站架构

【转】大访问量系统的设计&#xff08;二&#xff09;——高并发高流量网站架构 博客分类&#xff1a; 大访问量、高并发应用服务器网络应用lighttpdmemcached互联网 目录 1.网络层架构 1.1 镜像网站技术 1.2 CDN内容分发网络——调整服务器的域名解析来实现 1.3 应用层分布式设…