zoukankan      html  css  js  c++  java
  • [2011年12月]本月我加星(一)

    写在前面:

    记得以前赖勇浩(http://blog.csdn.net/lanphaday)老师有一系列文章叫做"本周我加星",这里我借鉴他的标题,每月用一篇日志,整理这个月看的技术类的文章。每篇文章都是我精读过的,数量大概在25~30篇上下浮动,保证每篇文章的质量,并附上一两句的介绍。如果是网上有的,我会给出链接,否则我会给出详细的出处。主要关注以下几个主题:Linux、搜索引擎、架构、存储。

    0.Y X-Rime:基于Hadoop的开源大规模社交网络分析工具

    程序员杂志2011年12期的一篇文章,介绍的是一个IBM中国研究院提供的进行社会化网络分析的开源工具包,介绍了架构、数据结构等,对基于Hadoop进行二次开发提供第三方库有所借鉴意义。

    项目主页:http://xrime.sourceforge.net/

    因为是09年的项目,而且项目不活跃,所以项目本身的实用价值倒是不高。

    1.如何"打败"cap定理

    http://www.programmer.com.cn/9260/

    程序员杂志2011年12期的一篇文章,Twitter首席工程师提出的避开CAP定理的设计思路,展示了一个不同于以往的数据系统设计方案。

    2.一淘网技术简介

    http://www.searchtb.com/2010/11/etao-tech-overview.html

    淘宝搜索技术博客介绍一淘网技术架构,对设计垂直搜索架构设计有参考作用,同时,可以一窥一淘和淘宝的关系,以及一淘如何充分利用现有淘宝海量的用户和商品资源。

    3.快速构建实时抓取集群

    http://www.searchtb.com/2011/07/%E5%BF%AB%E9%80%9F%E6%9E%84%E5%BB%BA%E5%AE%9E%E6%97%B6%E6%8A%93%E5%8F%96%E9%9B%86%E7%BE%A4.html

    淘宝搜索技术博客,介绍使用linux+mysql+redis+django+scrapy+webkit构建的定向抓取系统涉及到的问题以及关键概念。

    4.揭秘淘宝286亿海量图片存储与处理架构

    http://tech.163.com/digi/10/0901/06/6FFOOTN7001618JK.html

    淘宝章文嵩博士介绍淘宝开发TFS(taobao file system)的原因,及TFS架构及变迁。文章写作时TFS尚未开源,现在大家可以顺带着把TFS的开源页面(http://code.taobao.org/p/tfs/wiki/intro/)上的介绍阅读了。

    5.nosql生态系统

    http://www.programmer.com.cn/9276/

    对nosql的系统介绍,选择一个nosql系统时,需要考虑如下方面:

      0).数据模型(行、对象还是文档型)及操作模型(是否满足业务需求)

      1).可靠性(是否立刻持久化、是否同步到多台机器)

      2).扩展性(数据有多少,单机是否放的下,读写需求是否能满足)

      3).分区策略

      4).一致性

      5).事物机制

      6).单机性能(读多还是写多,写操作是否会成为磁盘瓶颈)

      7).负载可评估

    6.Instagram 架构分析笔记

    http://www.dbanotes.net/arch/instagram.html

    Fenng老师给出的Instagram架构分析,极简开发团队的代表。

    三个核心原则:

      0).Keep it very simple (极简主义)

      1).Don't re-invent the wheel (不重复发明轮子)

      2).Go with proven and solid technologies when you can(能用就用靠谱的技术)

    结论:

      0).轻装上阵说起来容易,做起来非常难。这也是 Instagram 团队目前最令人着迷的地方;

      1).Python 社区已经足够成熟,各个环节上都已经有不错的解决方案了。

      2).如果要问我最大的一个感慨,我要说:Amazon 真是一家伟大的公司,甚至比 Google 还伟大

    7.The Google File System

    http://research.google.com/archive/gfs.html

    Google三驾马车之一,无需过多介绍了。

    8.淘宝Oceanbase云存储系统实践

    http://www.programmer.com.cn/9252/

    淘宝日照老师对Oceanbase的介绍。

    9.谈一谈网络编程学习经验(06-08更新)

    http://blog.csdn.net/solstice/article/details/6527585

    陈硕老师介绍网络编程的经验,文章很长,值得细读。不仅有经验之谈,还给列了个通往高手之路的一个必备书单,很靠谱的书单。

    10.IOCP , kqueue , epoll ... 有多重要?

    http://blog.codingnow.com/2006/04/iocp_kqueue_epoll.html

    云风老师早期写的一篇文章,考虑将网游后端服务器拆成两部分,分别为连接服务器和逻辑服务器。连接服务器只处理并发网络连接,使用epoll、kqueue等,其后的逻辑服务器只使用一个连接和连接服务器通信,从而将网络连接的部分解耦出去,简化设计,文中还提到个极大的优势:方便调试、重现游戏逻辑。

    11.Cassandra存储机制

    http://www.ningoo.net/html/tag/sstable

    主要介绍了SSTable(Sorted String Table)。具体的存储流程相当于Write-back cache。对Cassandra来说,只有顺序写,没有随机写。

    12.漫谈基于HTTP协议的SOA架构

    程序员2011年12期的一篇文章,阿里云的一位工程师写的。

    这种架构的优劣:

      优点:

      0).支持异构平台调用;
      1).扩展方便:如果系统负载大或者需要进行业务扩展,那么横向和纵向的扩展均非常容易;
      2).无状态;
      3).灵活;
      不足:
      0).网络延迟;
      1).安全性
     
    13.从B 树、B+ 树、B* 树谈到R 树
    本来是想通过这篇文章再细致的看看B树,后来发现这篇文章还是不好理解,后来把《算法导论》上的B树章节看了一遍。《算法导论》一直放在手边,这章一直没看,这次读,发现大师写的要易懂的多。
     
    14.C10K问题-epoll简介
    sogou技术实验室的一系列文章,着重看了《C10K问题-epoll简介》以及《C10K与高性能问题续篇》,利用里边介绍的Lock Free技术,我还实现了有锁、无锁的栈并进行了性能测试,见这篇日志(http://www.cnblogs.com/liuhao/archive/2011/12/21/2295671.html)。C10K问题早已突破了这个并发限制,在Fenng老师的一篇日志(http://www.dbanotes.net/arch/c10k_c500k.html)里提到,早在去年9月,就开始考虑C500K问题了。
     
    15.用java的nio技术实现的异步连接池
    同是sogou技术实验室的一篇文章,链接见上。我没大看懂,有兴趣的可以读读。
     
    16.Tair ldb(leveldb存储引擎)实现介绍
    淘宝核心系统团队,对在tair中引入leveldb存储引擎所作的一系列工作的介绍。
     
    17.大规模社区构建-贴吧的实践
    百度贴吧的经验分享,干货很多。
     
    18.存储方式与介质对性能的影响
    百度贴吧团队对常见存储介质(磁盘、SSD)以及常见存储技术方案的比对测试,非常有参考价值。
     
    19.超级负载均衡
    百度贴吧负载均衡所使用的方案。
     
    20.Consistent hashing implemented simply in Python
    一致性hash的一份python实现,可以直接拿来用的代码,文章也对一致性hash原理做了简单介绍。
     
    21.Doclist压缩方法简介
    淘宝搜索技术博客给出的Doclist压缩算法介绍,循序渐进,简单、复杂、实用的算法都有,读了两遍。
    对一个压缩方法的效果进行评估主要参考:
      0).压缩速度;
      1).压缩比;
      2).解压缩速度;
    搜索引擎主要关注后两个。
     
    22.豆瓣网技术架构变迁
    还是豆瓣300万注册用户时的经验介绍,现在已经5000万了。  
      一些经验:
      0).把钱花在内存上是值得的;
      1).建立良好的profile工具,并利用之
      2).memcache并不廉价,仔细控制cache的对象大小和访问方式;
      3).避免数据库的join操作;
      4).在产品上做出限制以避免过慢的查询;
      5).仔细拆分前后台运算;
     
    23.下一代Apache  Hadoop MapReduce框架的架构
    在微博上有人分享看到的,其实没大读懂,细致了解还是需要读英文介绍。
     
    24.提升磁盘IO性能的几个技巧
    FastDFS作者、淘宝余华老师对提升磁盘IO性能给出的几点建议。
     
    25.分布式文件系统FastDFS架构剖析
    一个类google file system的系统,平民化的系统,轻量级、分组、对等结构,异步延迟问题解决,和tfs一样,文件ID由系统生成,作为索引依据,使得架构中去掉了索引维护这个单点,为简化系统,不支持分块存储,根据binlog进行文件同步。开源。"FastDFS是穷人的解决方案,FastDFS把简洁和高效做到了极致,非常节约资源,中小网站完全用得起,这是对FastDFS的极大认可和褒奖"
     
    26.2012平台之战
    《程序员》总编刘江对2012技术发展趋势的预测,2012年第一期的cover story的一系列文章都值得看看。
  • 相关阅读:
    ETL概念集锦
    想要快速泡大麦茶的4种方法
    Suggest blowing out the dust
    Pessimistic and optimistic locking
    操作系统简介
    初学计算机基础
    JavaScript筑基篇(三)->JS原型和原型链的理解
    网页瀑布流效果实现的几种方式
    javascript的基本语法、数据结构
    javascript如何列出全局对象的非原生属性。
  • 原文地址:https://www.cnblogs.com/liuhao/p/2310407.html
Copyright © 2011-2022 走看看