摘要: 解耦设计手法小结 设计是一个平衡的产物,需要在各个约束条件下(组织目标,业务目标,开发流程,技术能力,学习及维护成本等)不断地进行演进。 我们虽然不提倡做大而全的设计,但会坚持进行基础性设计,以保证我们的设计一直在正确的方向上演进。设计演进的过程既可以是自上而下的,也可以是自下而上的。 基本设计原则 阅读全文
posted @ 2017-03-20 16:57 有梦就能实现 阅读(1339) 评论(0) 推荐(0) 编辑
摘要: 架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。 本文是漫谈架构专栏的第四篇,作者将会介绍架构的切分,并直戳切分的本质其实就是利益的调整。文中作者将会讨论为什么需要切分、切分的原则、切 阅读全文
posted @ 2017-03-20 16:50 有梦就能实现 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DDD+GRASP进行分析和设计(防止主观的判断导致错误的假设) 5.SOA分布式下的数据一致性 5.1 阅读全文
posted @ 2017-03-20 16:43 有梦就能实现 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师,都需要深入思考的问题。 本文首发于InfoQ垂直号「聊聊架构」,ID:archtime 本文首发于InfoQ垂直号「聊聊架构」,ID:archtime 无架构,不系统,架构是大型系统的关键。从形上看 阅读全文
posted @ 2017-03-20 16:39 有梦就能实现 阅读(328) 评论(0) 推荐(1) 编辑
摘要: gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 我们可以设想一下,未来浏览器支持HTTP2.0,并通过现有开源序列化库比如protobuf等,可以直接 阅读全文
posted @ 2017-03-20 16:26 有梦就能实现 阅读(1578) 评论(0) 推荐(1) 编辑
摘要: 一、缘起 当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表: user( uid bigint, name varchar(16), pass varchar(16), age int, sex tinyint, flag tinyint, sig 阅读全文
posted @ 2017-03-20 16:06 有梦就能实现 阅读(216) 评论(0) 推荐(1) 编辑
摘要: 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。 什么是负载均衡 负载均衡(Load Balanc 阅读全文
posted @ 2017-03-20 15:57 有梦就能实现 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡。下图的例子是:有3台联通服务器、3台电信服务器,要实现“联通用户流量分摊到3台联通服务器、其他用户流量分摊到电信服务器”这个效果的设置。 DN 阅读全文
posted @ 2017-03-20 15:53 有梦就能实现 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 很多Web架构的文章都在谈大规模,高流量,高性能之类的网站架构设计,这类文章一是满足人们好奇心,但看过之后也就看过了,实际收益可能并不大;另外一个副作用是容易让人心潮澎湃,没学走先学跑,在很多条件仍不具备的情况下,过度设计、过度扩展(高德纳也说过,"过早优化是万恶之源"),所以,这里反弹琵琶,讨论一 阅读全文
posted @ 2017-03-20 15:05 有梦就能实现 阅读(212) 评论(0) 推荐(0) 编辑
摘要: *******************************前端*******************************1.增加必要的硬件和带宽,同时额外储备一部分,以备不时之需2.特别监控网络数据流量是否正常,如是否有大规模的爬虫、DDOS等浑水摸鱼,可以针对iP和Cookie的限流3.使 阅读全文
posted @ 2017-03-20 15:04 有梦就能实现 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题: 1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。 2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。 于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问 阅读全文
posted @ 2017-03-20 14:55 有梦就能实现 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 【IT168 技术】12月25日消息,2010互联网行业技术研讨峰会今日在上海华东理工大学召开。本次峰会以“互联网行业应用最佳实践”为主题,定位于互联网架构设计、应用开发、应用运维管理,同时,峰会邀请了来自盛大、阿里巴巴、五分钟等互联网企业的多位嘉宾演讲,他们将同大家一起探讨数据库技术在互联网领域的 阅读全文
posted @ 2017-03-20 14:50 有梦就能实现 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 的方案去实现的,这样会有什么问题呢,假设如果放到一个实例里面,全部用一个单机事务去解决,这样是能比较方便的解决数据一致性问题。但是存在两个问题,一是无法进行多实例部署,用户量增长以后,无法快速应对。二是,PHP中做事务,如果PHP遇到异常,有时并不会自动终止事务,导致DB被锁住,这是第一个版本。之后 阅读全文
posted @ 2017-03-20 14:47 有梦就能实现 阅读(4228) 评论(0) 推荐(0) 编辑
摘要: 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记 阅读全文
posted @ 2017-03-20 14:45 有梦就能实现 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 前言应用场景 事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中, 某些场地比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证? 在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去 阅读全文
posted @ 2017-03-20 14:43 有梦就能实现 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 一、需求缘起 【业务场景】 有一类写多读少的业务场景:大部分请求是对数据进行修改,少部分请求对数据进行读取。 例子1:滴滴打车,某个司机地理位置信息的变化(可能每几秒钟有一个修改),以及司机地理位置的读取(用户打车的时候查看某个司机的地理位置)。 void SetDriverInfo(long dr 阅读全文
posted @ 2017-03-20 14:34 有梦就能实现 阅读(577) 评论(1) 推荐(0) 编辑
摘要: 产生死锁的四个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。 二 锁的 阅读全文
posted @ 2017-03-20 14:04 有梦就能实现 阅读(483) 评论(0) 推荐(0) 编辑
摘要: <!-- 收藏 --> 前言: 前言: 由于网站访问压力的问题,综合分析各种因素后结合实际情况,采用数据库读写分离模式来解决当前问题。实际方案中采用“事务发布”模式实现主数据库和只读数据库的同步,其中: 发布服务器1台:sql2008,推送订阅模式 订阅服务器2台:sql2008 问题: 以上方案后 阅读全文
posted @ 2017-03-20 13:59 有梦就能实现 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 什么是死锁,如何避免死锁? 线程A需要资源X,而线程B需要资源Y,而双方都掌握有对方所要的资源,这种情况称为死锁(deadlock),或死亡拥抱(the deadly embrace)。 在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避 阅读全文
posted @ 2017-03-20 13:54 有梦就能实现 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 实际上kafka对机器的需求与Hadoop的类似。 原来,对于Linkin这样的互联网企业来说,用户和网站上产生的数据有三种: 需要实时响应的交易数据,用户提交一个表单,输入一段内容,这种数据最后是存放在关系数据库(Oracle, MySQL)中的,有些需要事务支持。 活动流数据,准实时的,例如页面 阅读全文
posted @ 2017-03-20 11:32 有梦就能实现 阅读(261) 评论(0) 推荐(0) 编辑