随笔分类 - 软件构架
摘要:原文地址:http://88250.b3log.org/web-message-push消息推送技术消息推送消息推送是针对 Web 应用开发领域的技术,指服务端以主动方式将信息送达客户端。主要用于提升用户体验,避免用户刷新页面从服务端拉取数据。例如 Web 邮件中自动出现刚收到的邮件项,Web 即时...
阅读全文
摘要:设计设计是否经过多次迭代,并最终决定了最好的一个?是否同时使用自上而下和自下而上的方法来解决设计问题?类与类之间的交互关系是否已经设计为最小化?设计被划分为层次吗?你对把这一程序分解成为子程序,包和类的方式感到满意吗?程序是不是易于维护?设计是否精简?设计出来的每一个部分都绝对必要吗?整体而言,你的...
阅读全文
摘要:原文地址:http://javatar.iteye.com/blog/1345073(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡...
阅读全文
摘要:原文地址:http://www.bbtang.info/linux/web/821.html一.软件介绍(apachelighttpdnginx)1.lighttpdlighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻...
阅读全文
摘要:原文地址:http://www.coderli.com/translate-restful-standard-resolvedOneCoder最近一直在使用Restful API,最近正好看到一篇自定义restful接口规范的“抛砖引玉”得的文章,索性翻译一下,与大家分享。原文地址:http://j...
阅读全文
摘要:原文:http://blog.csdn.net/gueter/article/details/1524447Author :JeffreyMy Blog:http://blog.csdn.net/gueter/引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信...
阅读全文
摘要:原文地址:http://2014.54chen.com/blog/2014/03/05/ihaveadream/总体思考总结这些年经验,进行构架演进的方向选择时,大致要做到下面的目标:可快速开发部署 (五分钟写出来一个经过测试的hello world并可访问/调用,并可在公网访问)天然可扩展(业务层...
阅读全文
摘要:英文原文:The Tumblr Architecture Yahoo Bought For A Cool Billion Dollars最近的新闻中我们得知雅虎11亿美元收购了Tumblr:Yahoo bought Tumblr for $1.1 billion. 你也许会发现Instagram也被Facebook重金收购的介绍. 这是一个巧合吗?这就由你来判断吧为什么雅虎会收购Tumblr? 这场交易中的商业价值我可能无法判断,但是如果你对Tumblr的技术方面有所了解,你一定会为Tumblr竖起大拇指. 为什么这么说呢,请接着读...Tumblr每月页面浏览量超过150亿次,已经成为火爆的
阅读全文
摘要:英文原文:High-Performance Server Architecture引言本文档的目的是为了同大家分享多年来我在开发一种特定类型的应用时形成的一些观点,而“服务器”只是对这类应用程序的一个不是那么恰如其分的称谓。更准确的说,我将描述的是一大类的程序,这类程序的设计使得它们能够在每秒钟内处理数量十分巨大的离散消息或请求。网络服务器是最为常见的同此定义吻合的软件,但是,并非所有同此定义吻合的程序绝对可以称作是服务器。然而,“高性能请求处理程序”这种称谓又很难让人接受,所以,为了行文简单起见,我就用“服务器”这个词了事了。尽管在单个程序中进行多任务处理现在早已司空见惯了,但我将不会对“适
阅读全文
摘要:英文原文:11 Best Practices for Low Latency Systems自从Google发布额外的一个500ms延迟将减少20%的流量以及亚马逊发现额外的100ms延迟会使销售量下降1%已经8年了。此后,开发者们一直奋战在延迟曲线的底部,甚至前端开发者们都在压缩JavaScript、CSS以及HTML来争取分毫时间。以下是各种低延迟系统设计时需牢记在心的最佳实践的一个概览。大多数这些建议考虑的是逻辑上极端,可以权衡使用。(感谢在Quora上问这个问题的匿名用户,这让我把我的想法写了下来)。选择正确的语言脚本语言不要使用,尽管它们越来越快,当你处理关键事务像拿掉进程的最后几毫
阅读全文
摘要:1. 客户需求重于个人简历 ( Nitin Borwankar )客户需求至上。为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违。2. 简化根本复杂性 ,消除偶发复杂性 ( Neal Ford )分析问题好比拨云见月、水落石出。3. 关键问题可能不是出在技术上 ( Mark Ramm )团队同心,其利断金。4. 以沟通为中心,坚持简明清晰的表达方式和开明的领导风格 ( Mark Richards )沟通应当言简意赅、详略得当,别拖泥 带水。5. 架构决定性能 ( Randy Stafford )种瓜得瓜,种豆得豆,架构设计也是一 样道理。6. 分析客户需求背后的意义 ( Einar La
阅读全文
摘要:原文地址:http://www.uml.org.cn/zjjs/201309043.asp架构设计则为满足架构需求的质量属性寻找适当的战术。对如何实现特定的质量属性感兴趣。质量需求指定了软件的响应,以实现业务目标。我们感兴趣的是设计使用设计模式、架构模式或架构策略创建设计的“战术”。是什么使一个设计具有了可移植性,一个设计具有了高性能,而另一个设计具备了可集成性?实现这些质量属性依赖于基本的设计策略。我们将对这些称之为“战术”的设计决策进行分析。战术就是影响质量属性响应控制的设计决策。战术集合称为“架构策略”。架构模式以某种方式将战术打包在一起。系统设计是由决策集合组成。对设计师来说,每个战术
阅读全文
摘要:原文地址:http://www.uml.org.cn/zjjs/201305172.asp谈到流程,大家都会想到熟悉的瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但是请不要误会,本文的流程和这些管理流程完全不同,为了以示区分,我把瀑布模型、敏捷、RUP等流程成为项目流程,也就是说这是给项目管理用的;而本文的流程是技术流程,是给技术人员(主要是设计人员)看的流程。在开始讲解之前,看看如下问题你是否能够回答?1、客户的需求是描述性的,例如“我们需要一个POS机”,而代码是一个一个具体的类和函数,那么如何从描述性的语言最后转化到具体的类和函数呢?2、具体语言的特性,例
阅读全文
摘要:原文地址:http://www.uml.org.cn/zjjs/201306263.asp之前我简单向大家介绍了各个知名大型网站的架构,亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的想法很可能是狭隘的。今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个
阅读全文
摘要:原文地址:http://www.uml.org.cn/zjjs/201307172.asp一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。1:积累是必不可少的架构师不是一天练成的。1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTML中,再用FTP传到服务器上就可以给别人展示一个网站。2000年,个人主页已经不能满足好奇,在当时的网管中心管起几台机器
阅读全文
摘要:原文地址:http://www.ha97.com/5095.htmlPS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素:一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/事务数量并发数:系统同时处理的request/事务数响应时间:一般取平均响应时间(很多人经常会把并发数和TPS理解混淆)理解了上面三个要素的意义之后,就能推算出它们之间的关系:QP
阅读全文
摘要:前言 这个名字起的太大,其实我只是想说明一个设计。这个设计是用于收集并分析用户行为的。 一般我们分析用户行为离不开数据,这些数据可以来自于数据库也可以来自于用户操作日志。这里我介绍的就是基于用户操作日志的行为分析方法。这个方法也可以说是一个设计,该设计包含三个部分。第一部分是用户行为数据收集第二部分是用户行为数据汇总最后是用户行为数据分析。整体结构大概如下图:图中大概能说明整个框架的运行流程。接下...
阅读全文
摘要:1:简单介绍MongoDB是一款分布式文档数据库,支持类似关型数据库的主从结构,文档以二进制Json形式存储,无锁,无事务,有索引。2:安装步骤第一步:下载程序集http://www.mongodb.org/downloads第二部:解压并抽取相关的bin目录到C:\Mongo下(这个任意选择) ,并在该目录下建db文件夹。第三部:打开CMD窗口,进入到C:\Mongo\bin目录下,运行mong...
阅读全文
摘要:引言 什么是热点问题,热点问题对站点有什么危害,如何解决热点问题。本文会对这些问题做出我自己的回答。问题的引出 我们先来看个场景。假设我们有张网然后我们分别用圆形的石头和锥形的石头去砸这张网,其结果大家一定都知道。后者有更大的可能撕破这张网。这个例子拿到站点上也是成立的。对于一个站点来说压力最后不可避免的都砸到数据库服务器上了,而这些数据的压力是有轻重之分的。比如强交互的数据就比呈现型的数据对数...
阅读全文
摘要:前言我们在高负载程序的解决方案中通常会采用软件级别的负载均衡方法。举个简单的例子比如一个站点如果是河南的访问者就让服务器A提供服务如果是上海的用户那么就让服务器B来提供服务,这样就把一个站点的负载均衡到两台服务器上了。这样做的必要性不言而喻。今天我们也不是谈这个话题,我们谈的是负载均衡的算法,如果大家对这个话题感兴趣就继续往下看。场景前言中举得例子是一种情况,这种情况可以概括为“状态不...
阅读全文