Tagged: 架构 RSS

  • bixuan 17:28 on 2010 年 11 月 23 日 链接地址 | 回复
    Tags: , 架构   

    [转载]多IDC数据时序问题及方法论 

    上一周在微博架构与平台安全演讲中提到多IDC及架构设计的方法,由于最近工作中经常碰到这种情况,再举一个小案例补充一下。

    Web数据访问比较好的设计模式是使用cursor方式(参考前文用Twitter的cursor方式进行Web数据分页),原理上相当于增量方式访问数据,可以极大提高访问性能。

    在单IDC场景中,如图1,系统的id是递增,假设用户上一次访问最新一条记录是1002,则本次访问最佳的方式是 get?cursor=1002,可以高效取到后面3条新记录。

    多IDC场景,看图2,假设白色背景属于Region 1,灰色背景属于Region 2, 由于两地同步有延迟,这样在Region 1中1001和1003来到时间较晚,排在本地数据1002和1004后面。假设用户上一次也是取到最新一条是1002(注意此时1001没取到,因为从外地未同步过来)。在Region 1调用 get?cursor=1002返回结果会得到什么?从数据库角度来看,访问cursor=1002 只会取到id>1002的记录,而上次未取到的1001即使已经同步过来是永远不会返回了。这样就产生了数据一致性问题,1001丢了。另外一个机房Region 2调用也产生类似问题。不同的cursor产生不同的丢失问题。

    提出这个问题后身边很多技术人员非常感兴趣,经常走在路上被拦住介绍他们突然想到的一种更巧妙的解决方法。部分思路如下
    (这里先不考虑ID递增算法如何实现,多IDC使用K-SORT方式递增也是比较容易的)

    • 例外的方式,把迟到的id都存下来
    • 补方式,把cursor往前多取一点,宁滥毋缺
    • 快照方式,最近取的记录都存下来,这样服务器内部知道这个cursor上次哪些id取了哪些没取

    大部分方法貌似都能工作,但都有问题或不完美,更重要的一点,也就是上周演讲中提到的,架构要把复杂的问题抽象简单,很多技术人员面对这个问题,并没有深层次思考这个场景的问题本质是什么,因此虽然匆匆考虑了很多复杂的解决方案,但是没有完美解决问题。

    有兴趣的朋友可以继续思考,看能否将复杂的问题抽象简单并解决?

    From: http://timyang.net/architecture/method/

     
  • bixuan 17:08 on 2010 年 11 月 23 日 链接地址 | 回复
    Tags: , 架构   

    [转载]微博架构与平台安全演讲稿 

    微博架构与平台安

    View more presentations from Tim Y.

     
  • bixuan 16:27 on 2010 年 01 月 29 日 链接地址 | 回复
    Tags: , 架构   

    架构可伸缩性的10大失败案例 

    作者:tonnyom
    原载: http://www.sanotes.net/html/y2010/449.html
    版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
    From The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise
    1, 单纯认为架构可扩展性只是个技术问题
    2, 调用同步处理的过度使用
    3, 一个问题还没处理完毕,就开始了新的架构调整
    4, 没有合理的使用数据库
    5, 架构被越扩展越复杂
    6, 只依赖于垂直可伸缩性,单纯地考虑硬件方面的扩容
    7, 从不吸取经验教训
    8, 不断的改变开发策略,简单而重复的解决问题
    9, 没有及时的使用缓存,或者使用的不够
    10,过分依赖于第三方,这方面可能是指基础架构的非独立性,没有针对自己业务的应用层开发等等

     
  • bixuan 22:35 on 2010 年 01 月 19 日 链接地址 | 回复
    Tags: redis, 架构   

    做架构就像开药方 

    今天听到ZZ说他安装了redis,我一听就火了,本来有ttserver,memcahced和mysql,现在偏偏又搞一个redis,不是说redis不好,很多事前面3个应用软件可以解决当前99.9%的问题,问其原因说是为了测试。测试也得跟我打个招呼啊,晕了。

    后来突然想起以前说过的话,在历代中医药方里,能超过15味药的方子微乎其微(超过15味的药方一般都是治疗重症),说明一个现象:只要把握住病症的主要矛盾,仅用简单的几味药互相配合就可以治疗大部分的病(这里需要多味药组合更多的是为了消除君药等带来的副作用)。

    现在我们选用的app就像药,一个系统(药方)里药的味数越多,虽然在短时间内解决了表症,但是其产生副作用也是越多的,这时候抵要消副作用就需要更多的时间、精力和金钱,钱花了,病却没治好,这个痛苦只有当事人最知道(这个运维人员的体会会更深)。

    唉乎,希望下次能多注意~~

     
    • frank 10:21 on 2010 年 01 月 20 日 链接地址

      呵呵,老大就是老大,不让用还不让测啊,小弟喜欢研究是好事。人到了一定程度就容易固执,太高了就不容易听听下在的意见。哈,历代皇帝也这样了子的。

  • bixuan 12:24 on 2009 年 02 月 07 日 链接地址 | 回复
    Tags: 架构   

    第 4 章 合理的架构 

    什么样的架构才是合理的?个人觉得可以参考如下标准:

    • 可伸缩性原则
    • 高可用原则

    查看上一章:《S3-组成Web站点元素
    查看下一页:《S4.1-可伸缩性原则

     
  • bixuan 14:30 on 2009 年 01 月 22 日 链接地址 | 回复
    Tags: 低成本, 可用性, 安全, 架构, 流程,   

    S1-3H1L 

    S1:3H1L

    何谓3H1L?

    • 高可用
    • 高性能
    • 高安全
    • 低成本

    为什么要实现3H1L?

    将3H1L作为一个系统运营的终极目标,对公司整体运营是非常有好处的,这也将为公司利益最大化提供一个非常好的平台和基础,特别是互联网企业。

    那么如何来实现?有哪些途径?

    知道了3H1L的定义后,下面就要知道我们如何来实现,下面的三点,做个参考记录下:

    1. 合理的架构
    2. 较完善的流程体系
    3. 较完善的监控体系

    在介绍架构前,我们必须要知道组成Web站点的元素,但是在之前,我想还是先来看看性能参数,以便为Web站点元素优化的时候提供参考。

    查看下一章:《性能参数

     
  • bixuan 16:20 on 2008 年 09 月 23 日 链接地址 | 回复
    Tags: 架构,   

    大型网站架构体系 

    比较完善的架构更多看:http://www.blogjava.net/wangwy/archive/2008/09/23/230602.html

    架构

     
c
写新的
j
下一篇文章/下一个回复
k
前一篇文章/以前的回复
r
回复
e
编辑
o
显示/隐藏 回复
t
回到顶部
l
go to login
h
show/hide help
esc
取消