`
hubertwu
  • 浏览: 19765 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
邬红兵:    首先欢迎大家来参加今天这个技术分享,我先很快的过一下PPT,讲述一下自己的经历,大家有什么问题,我们互相交流,这样知道的更多。        先简单介绍一下自己的经历,我发现每个人回顾自己的经历都 ...
    做大系统设计,就和切蛋糕一样,把复杂问题简单化。一口吃不了一个胖子,就分块来吃。设计方法无非就以下几种方法:     一是横向切,最典型的的就是TCP/IP协议;把整个互联网通讯按实现的功能来分成几层,每一层专注自己那层的工作。比如链路层(IP)专门负责发送和接收IP数据报。这样,每层的工作比较明确清晰,实现起来也比较方便。     二是纵向切,比较典型的就是TCP和UDP的分离。TCP负责可靠信息的传送,UDP负责不可靠但快速的信息传送。大家各负责各的,界限很清晰。     三是异步脱离。就是将一些外围非实时服务通过消息或事件驱动的方式让他们独立出去,脱离主系统流程。比如日志系统 ...
    从高级工程师升到架构师的经历对我来说有点搞笑。技术能力是一个方面,但是最主要原因不是因为我的计算机技术,而是我对一些物理现象的本质理解。     99年刚从上海到美国硅谷,加入一家创业公司。我老板是公司 ...
    人有心脏,汽车有引擎。大规模交易系统里,最好也有一个引擎;就好比人有心脏,汽车有引擎一样。交易系统的引擎是什么?能够起到什么作用?应该如何搭建?咱们慢慢谈。     前面的博客中提到系统有三个核心部分,这次先详细探讨其中一个,就是交易本身,把钱(或有价证卷等)从A账户转到B账户的操作。这个操作是一个最基本的最核心的操作,钱(或证券等)流动的操作都可以由这个基本操作组合而成。     引擎是什么?就是执行由上面所说的那个基本核心操作(当然还有一些其它操作)组成的操作流程的东西。引擎不负责流程的制定,它只负责流程的执行,它是执行者。就和心脏一样,心脏不是大脑,不负责行动计划,只负责行动。 ...
    大家经常会听到分布式事务处理,分布式存储等等。但是,在大规模交易系统中,对于核心数据的部分,这些都是狗屎;害死了许多人。前前Paypal的CTO就是被这东东给害了。     由于交易量不断的增大,当时Paypal的核心数 ...
    交易的核心是什么?很多时候大家都说不到点子上。其实最最核心东西的就是把钱(或证券等)从账户A移到账户B的操作;任何交易系统,都脱不开这个操作。这个操作的相关东东就是整个交易系统的核心。     核心相关的东东有些什么?     首先是帐务系统。把钱(或证券等)从A账户移到B账户,你得知道A账户的情况,你得知道B账户的情况;账户管理必须得有。帐务信息要存储到数据库里。     其次是钱转移的过程,也就是把钱从账户A里拿出来,把钱放到B账户里去。所以移钱一般有两个数据库操作:A账户减钱,B账户加钱。这就涉及到事务一致性的问题。钱从A账户扣掉后,必须保证钱能加到B账户里去。关于事务一致性 ...
假设下面的pseudo code是一段重要的实时操作的程序:   。。。。 Begin Transaction Call Remote Service A To Write Data in A system Insert Record Update Status Call Remote Service B To insert Data in B system Send Email To Notify User Call Remote Service C To Update Data ...
    大家都知道大规模系统中Web服务器不止一台,也不是几十台,很可能是成百上千台。系统必须是可扩(Scalable)的;特别是Web服务器必须是可扩的,因为大型系统的流量会是非常大的。     最简单最便宜的方法就是加Linux机器来作为Web服务器。你设计的架构如果不能支持这种通过加机器来扩充系统的方法的话,以后随着流量的增大,领导和群众都会疯掉;系统重构估计是不可避免的。     显然,要做到这一点,每台Web服务器上是不能保存(交易/请求/session。。。)的状态的。就是说每台Web服务器上是Stateless的。     有人要说,我偏偏要在Web服务器上保留状态,咋啦?。 ...
    说道CorrelationID,发觉很多架构师不知道这个概念;说明这些架构师没玩过多个子系统的协同。CorrelationID是什么?是协同ID,协同一个交易在不同子系统之间的情况。别小看这个东西;有了它,你的工作真的会事半功倍。    CorrelationID是什么?是一笔交易(或其它全局的东东)在整个系统中唯一的标志,是跨子系统的唯一标志。在跨子系统的交互中,每条通讯消息中,必须有一个字段是CorrelationID。    CorrelationID有啥用处?    (1)关联作用。由于不同子系统的实现方法可以千差万别,可以采用不同的数据库或Schema,信息的标志也不一样 ...
大规模系统常见问题:       大规模系统和小规模系统是不一样的。一般小规模系统一个牛X的高级架构师就可以完全搞定设计,他可能对整个系统了如指掌,能驾驭系统的各个方面。但是大规模系统就不是这么一回事。再牛 ...
做了很多年的软件系统和架构设计,由于本人很懒,没写过什么帖子或文章。但是自己也有些经验和想法,也总想拿出来给大家分享一下,探讨一下。最近,为了让自己能回炉一下知识,决定勤快一点,写些帖子,来总结一下自己对大规模系统架构设计的理解,清理一下思路;同时也给大家提供个正面或反面的东西做参考,和大家一起学习讨论。   有些东西,做过和没做过有时还真是不一样。大规模系统的玩法和一般规模系统的玩法是不一样的;做过大系统和没做过大系统的高级架构师,眼光还真有些不同。   工作中,发现许多人对这个还不是真正的理解。认为大系统和小系统的玩法都一样,或是以为自己区分了,却还是用小系统的玩法来设计大规模系 ...
Global site tag (gtag.js) - Google Analytics