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

news/2024/5/10 1:54:32/文章来源:https://blog.csdn.net/fsmwhx/article/details/6854561

这次的 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 系统也在用。

 

 

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


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

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

相关文章

nginx下基于ThinkPHP框架的网站url重写

ThinkPHP在nginx下的各种rewrite伪静态看起来是很麻烦的,但了解透彻了nginx的url重写机理以及ThinkPHP的各种url模式,那么在nginx下为基于ThinkPHP的应用做特定的url重写就很容易了,本文是博主基于ThinkPHP开发的各种web应用以及为这些引用在…

李开复,你就这点能耐?弄个破ASP的山塞别人的网站还说创新?创意铁锅吧!

晕!李开复的创新工场竟然是山寨版!(有图有真相) 晕!李开复的创新工场竟然是山寨版! 创新工场也山寨,谈何创新?山寨工场? 【有图有真相】

网站服务

一、网站页面访问流程 0、客户端 浏览器输入网址信息点击回车 1、客户端 完成域名的解析过程(DNS) 2、客户端 直接访问相应网站服务器 建立TCP三次握手过程 3、客户端 访问网站服务器 发送HTTP请求报文 多次 4. 服务端 响应客户端请求 回复HTTP响应报文 多次 5. 客户端 浏览器看…

网站LNMP架构

L:Linux系统 注意: a selinux必须关闭 防火墙关闭 b /tmp 1777 mysql服务无法启动 N — nginx服务部署 作用:处理用户的静态请求 html jpg txt mp4/avi N:nginx M:mysql P:php 作用: 1. 处理动态的页面请求 2. 负责和数据库建立关…

06http网站页面访问流程

访问网站流程 1.http01.http协议及介绍1.http协议:2.核心:3.http请求报文与响应报文 02.访问网站原理及过程图03.DNS原理流程详解1.1 DNS域名的结构(层级)1.2 DNS解析流程详解1.3 DNS记录的类型1.4 搭建网站的流程 04.http协议补充…

07Web网站 Nginx(第一部分)

Nginx服务 1.Nginx01.Nginx介绍1.基础概念:2.网站服务特性:3.软件功能特性:4.nginx与apache的区别5.Nginx企业应用 02.Nginx网站服务部署1.Nginx网站服务软件部署方式2.Nginx网站服务软件安装部署过程3.Nginx配置文件4.主配置文件/etc/nginx/…

07Web网站 Nginx(第二部分)

Nginx虚拟主机设置 1.Nginx虚拟主机01.nginx虚拟主机介绍02.nginx相关错误03.虚拟主机的常见类型1 基于域名的虚拟主机的配置2 基于端口的配置3 基于IP虚拟主机的配置 04.nginx处理用户请求过程※※※05.nginx核心配置※※※1 nginx日志格式2 log_format日志格式的详细介绍 06.…

o7Web网站Nginx(第三部分)

nginx 常用模块 1.模块 ngx_http_access_module 指定网段访问功能01.功能介绍02.指令03.示例配置04.应用场景 2.模块 ngx_http_auth_basic_module 页面认证功能01.功能介绍02.指令03.示例配置04.应用场景 3.模块 ngx_http_autoindex_module 列表目录01.功能介绍02.指令03.示例配…

07 Web网站 Nginx (第四部分)

企业应用Nginx以及LNMP架构 1.企业应用过程2.利用Nginx搭建一个多网站3.访问形式4.LNMP架构实现过程01.LNMP架构说明1 搭建网站必备环境2 LNMP架构环境部署 02.LNMP架构读写原理与通信原理解析1实现Nginx与PHP.server的通信2实现PHP.server与MySQL的通信 1.企业应用过程 &#…

07 Web网站 Nginx (第五部分)

LNMP架构补充 负载均衡 高可用服务 01.LNMP补充1.LNMP上节课补充2.LNMP架构与存储服务器建立联系3.LNMP架构与数据库服务建立联系(数据迁移) 02.Nginx反向代理 负载均衡1.反向代理 负载均衡说明2.什么是反向代理,什么是负载均衡?3…

新媒体专员必备素材网站,没有灵感,找它就对了!

大家都知道,新媒体运营专员每天都要写很多文字,很多不同的,优质的内容来达到自己的目的! 但是,天天写,日日写,肚子里再多墨水也有干涸的时候!当我们写不出东西时,该怎么…

给大家分享个 网站头像上传的 插件

给大家分享个 网站头像上传的 插件,可以实现头像的修改, 下载链接:http://download.csdn.net/detail/abc456456456456/6621241

学会了SEO就真的会网络营销吗?

目前国内的形式是跟风流,最近SEO的兴起带起了不少SEO培训机构的兴起,线上培训,线下培训屡见不鲜,我也会是在一所培训机构中认识SEO的从而创立了现在的泰州SEO博客网站!SEO的兴起带动了不少企业以及个人的网赚理想,因为…

http://nian.so/#网站的拓展工具编写

这个网站叫做念我用了很久,有安卓和ios版本,我对网页版进行了处理; 写了此社交网站的一个拓展工具。 功能–:对自己或者他人的进展页面内容进行处理,可以筛选关键字。不需要可以隐藏。简单有效。其他页面无法使用。 …

HTML基础——网站图片显示页面

1、图片标签 <img /> 属性&#xff1a;     src:指的是图片显示的路径(位置)       绝对路径&#xff1a;D:\Pictures\Saved Pictures       相对路径&#xff1a;           ①同一级&#xff1a;直接写文件名称或者./文件名称        …

网站银联支付证书更换

题记&#xff1a; 因为公司项目已经运行几年 银联支付的证书在这个月底到期需要更换 步骤: 1.登录 地址: https://merchant.unionpay.com/cas/login 2.点击商户服务平台 3. 3.点击安全证书管理 4.点击下载证书 5.确认启用该证书 禁用要过期的证书 6.点击ie的设置按钮…

手机H5如何对接支付宝登陆授权以及支付(H5网站支付)

场景需求&#xff1a; 通过支付宝扫描二维码进入手机H5网站,获取用户唯一标识appid来标识用户以及处理逻辑。一系列操作后&#xff0c;调起支付窗口完成支付宝支付 1、支付宝开放平台配置 1、登陆支付宝开放平台中心&#xff0c;选择“ 网页&移动应用 ”&#xff0c;然后…

网站demo

学成教育在线网站demo <style>*{margin: 0;padding: 0;}.w{width: 1200px;margin: auto;}body{background-color: #f3f5f7;}/*清除li前面的原点*/li{list-style: none;}/*ul,li{margin:0; padding:0;}*/a{text-decoration: none;}/*清除浮动&#xff0c;咱也不清楚&#…

大型网站架构演变和知识体系

转自&#xff1a;http://www.phpchina.com/html/40/n-35340.html 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做…

springboot“传情旧物”网站计算机毕业设计(源码、运行环境)

登录界面 旧物信息 公告信息 首页 本源代码和数据库都放至公众号毕业admin,需要此套源代码可以在公众号里获取。