分类目录归档:架构

来自 Google 的高可用架构理念与实践

孙宇聪,CTO @ coding.net 。2007 – 2015 年初在 Google 的 Moutain View 担任 SRE 职位。 参与了 Google 的两个项目:第一个是 Youtube,工作内容涵盖 Video transfer、Coding、Streaming、Global CDN 等;第二个是 Google Cloud Platform Team,主要工作是管理 Google 全球 100 万台左右的服务器,开发用于管理 Google 整个云平台的任务调度、协作的集群管理系统 Omega 。 阅读全文

京东亿级商品搜索核心技术解密

1

京东商品搜索简介
京东商品搜索引擎是搜索推荐部自主研发的商品搜索引擎,主要功能是为海量京东用户提供精准、快速的购物体验。目前入口主要有PC/移动/微信/手Q搜索、移动列表页、店铺搜索、店铺列表等。虽然只有短短几年的时间,系统已经能够支持日均PV过亿的请求,并且经过了多次618店庆和双11的考验。 阅读全文

重构并非难在如何做,而是难在何时开始做

大多数架构师在回顾重构过程的时候都会感慨:“要是早点重构就不会这么麻烦了”,不过在下一次重构到来之前,永远没人知道“早点”究竟是何时,同样的感慨会反复被提起。那到底有什么办法找到最合适的重构时机?本文作者杜欢是滴滴平台产品中心技术总监,他就这个问题进行了探讨,不一定能找到最终答案,或者这个问题本身就没有答案,但希望能给读者一些思路,如果你有想法,别忘了评论。 阅读全文

分布式队列编程:模型、实战

point2point

介绍

作为一种基础的抽象数据结构,队列被广泛应用在各类编程中。大数据时代对跨进程、跨机器的通讯提出了更高的要求,和以往相比,分布式队列编程的运用几乎已无处不在。但是,这种常见的基础性的事物往往容易被忽视,使用者往往会忽视两点: 阅读全文

论架构师的自我修养

架构师,当然是脑力劳动者,但是,同样是脑力劳动也存在重大的差别。有一类脑力劳动的成果,是比较容易被评价的。或者能够判断其对错:比如考试的分数;或者能够比较其高下:比如两个人下棋分出输赢;或者能够交由市场来判断:比如某种UI/UE设计,我们可以通过数据统计,了解其受用户欢迎的程度。 阅读全文

消息队列设计精要

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。 本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。 本文首先会阐述什么时候你需要一个消息队列,然后以Push模型为主,从零开始分析设计一个消息队列时需要考虑到的问题,如RPC、高可用、顺序和重复消息、可靠投递、消费关系解析等。 也会分析以Kafka为代表的pull模型所具备的优点。最后是一些高级主题,如用批量/异步提高性能、pull模型的系统设计理念、存储子系统的设计、流量控制的设计、公平调度的实现等。 阅读全文

一名分布式存储工程师的技能树是怎样的?

分布式存储相关的系统大概分为几种(这里不说分布式计算相关系统): 1. 分布式文件系统,比如HDFS,Ceph。这些专门存大文件。特别是HDFS大公司标配,不多说。

2. 对象存储,典型的就是Amazon S3,这种系统很多公司自己造给公司内部用,存图片等小文件,接口一般不会兼容Amazon S3,因为不需要,比如淘宝的TFS,基本思路就是将多个小文件合并成大文件存储,经典论文FB的HayStack。这种系统一般读多写少,不需要修改,很少删除,一致性也没那么强,系统相对好做。基本上HDFS+HBase就能搞定一个这种系统,HBase存元数据,利用HDFS的Append功能将小文件合并成大文件。 阅读全文

微服务部署面临哪些挑战?

image

以前,我们邀请几位嘉宾讨论了他们在开发微服务时遇到的挑战,比如Fred George或Dustin Huptas和Andreas Schmidt。近日,Usman Ismail参加了一场小组会议,讨论了微服务持续交付面临的挑战,并决定随后详述其中的部分重点内容。他首先讨论了微服务其中一个基本原则的缺点,即允许大型团队通过快速原型和迭代以一种更加敏捷的方式推进(软件)开发: 阅读全文

浅谈大型web系统架构

1
  大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。

大型动态应用系统又可分为几个子系统: 阅读全文

大型网站架构演变

1
今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。

  架构演变第一步:物理分离WebServer和数据库 阅读全文