架构
fdimaof
篮球,足球,读书
展开
-
membase-A distributed key-value database for modern web applications
<br />如果应用中用了memcached,那么毫无疑问可以用membase来持久存储!<br />http://membase.org/<br />Membase is an open-source (Apache 2.0 license) distributed, key-value database management system optimized for storing data be原创 2010-06-28 16:48:00 · 1227 阅读 · 2 评论 -
架构师和管理人员最有影响力的书籍
2009-11-05 16:24:47添加 1. 解析极限编程:拥抱变化(第二版)(中英文对照)<br />作者 : (美)贝克<br />出版社 : 电子工业出版社<br />评语 : Kent Back)是一本不错的极限编程(XP)入门书,它能够让你即使在从未了解过任何敏捷方法的情况下,也能够很好地进行阅读。但是,还不能将它作为一本参考书来看。2009-11-05 17:57:28添加 2.转载 2010-06-04 15:40:00 · 770 阅读 · 0 评论 -
MYSQL架构方案
<br />Scale Out:横向扩展,增加处理节点提高整体处理能力<br />Scale Up:纵向扩展,通过提升单个节点的处理能力达到提升整体处理能力的目的<br /><br />Replication<br />MySQL的replication是异步的,适用于对数据实时性要求不是特别关键的场景。slave端的IO线程负责从master读取日志,SQL线程专门负责在slave端应用从master读过来的日志(早期MySQL用一个线程实现,性能问题比较明显)。使用replica转载 2010-06-04 15:44:00 · 491 阅读 · 0 评论 -
大型网站架构演变和知识体系
<br />之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,:),文中的不对之处也请各位多给点建议,让本文真正起到抛砖引转载 2010-06-04 15:45:00 · 518 阅读 · 0 评论 -
LAMP网站架构方案分析
<br />LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质原创 2010-06-04 15:46:00 · 649 阅读 · 0 评论 -
Yahoo!的分布式数据平台PNUTS简介及感悟
<br />在分布式领域有个CAP理论(Brewer’s CAP Theorem),是说Consistency(一致性), Availability(可用性), Partition tolerance(分布)三部分在系统实现只可同时满足二点,没法三者兼顾。所以架构设计师不要把精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍,选取最适合应用需求的其中之二。比如MySQL 5.1 cluster设计前显然不知道有CAP理论这样的经验, 所以MySQLcluster表面看来尽转载 2010-06-04 15:51:00 · 636 阅读 · 0 评论 -
从概念设计到信息架构
<br />很多朋友都在研究《Web信息架构》,这是一本关于解决“如何将信息有效整理编排”问题的巨著。是否有更多的朋友会疑惑?在我们已经了解了如何整理信息之后,面对世界上成百上千的信息,哪些是需要针对当前项目进行整理呢?<br />如果说信息架构(IA:Information Architecture)教给了我们如何包饺子,那么概念设计(CD:Concept Design)将教给我们什么样的馅料更美味可口。<br />今天要谈的概念设计并非“产品概念设计”,而是对转载 2010-06-04 15:18:00 · 210 阅读 · 0 评论 -
大型网站架构系列
<br />[架构] 大型网站架构系列<br />架构<br />一 不得不考虑的问题<br />注意:这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以 实现的架构了,我们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者. NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任转载 2010-06-04 15:20:00 · 341 阅读 · 0 评论 -
每月3亿PV的FaceBook朋友买卖插件的架构与数据
<br />在短短的三个月时间内,朋友买卖成为facebook前十名的应用,它每秒钟处理200个请求,每月产生300 000 000个page view。在技术上,选择了Ruby on Rails框架,两个兼职程序员,一打服务器,和优秀的架构。<br /><br /> <br /><br />架构<br /><br />l Ruby on Rails<br /><br />l CentOS 5(64bit)<br /><br />l Capistrano 升级和重启应用服务器转载 2010-06-04 15:29:00 · 830 阅读 · 0 评论 -
搭建mysql master-slave replication
<br />[MYSQL] 搭建mysql master-slave replication<br />本篇文章记录了如何搭建一个master-slave架构的mysql数据库服务器,一般用于读写分离的场景下:master for INSERT/UPDATE/DELETE,slave for SELECT。<br />根据实战结果,在master-connect-retry=5的情况下,基本可以做到读写同步(可以打开slave的log文件来观察同步结果:tail -f /var/run/转载 2010-06-04 15:31:00 · 448 阅读 · 0 评论 -
高性能、高流量互联网应用系统架构设计上所遵循的基本原则
<br />高性能、高流量互联网应用系统架构设计上所遵循的基本原则。 <br /><br /> 原则一:假设故障总会发生(design with failure in mind)<br /> 在设计和实现大型互联网在线应用时,架构师必须考虑到系统各模块、各应用服务器、各开源应用软件的故障比率和失效的潜在原因。当服务的可用性(availability)成为系统设计的首要目标时,尤其需要在设计阶段就充分考虑如何在系统某部分发生故障时,仍然保持一定的服务可用转载 2010-06-04 15:37:00 · 916 阅读 · 0 评论 -
Resin服务器配置指南
1 修改历史<br /> 版本修改历史 作者描述工作时间(h)V0.12007-6-7张乐雷创建文档得基本结构、基本流程0.5V0.1.12007-6-11张乐雷增加了对: 日志配置的详细解析。0.5V0.22007-7-4张乐雷增加:session-config的配置解释0.1V0.32007-8-5张乐雷增加:resin概念解释0.1V0.42007-8-31张乐雷增加:常见问题中,集成配置方法0.1V0.52007-9-10张乐雷增加:resin不能启动问题解决办法0.1V0.620转载 2010-06-04 15:32:00 · 665 阅读 · 0 评论 -
高考中国网高可用、负载均衡、可扩展设计与实现
<br />高考中国主要包含“高考志愿通”志愿填报系统的研究开发、产品运营;高考中国网站(www.gaokaochina.com)的开发、维护与运营。<br /><br />“高考志愿通”是经过数十位全国高考志愿填报指导专家、计算机网络专家、数学模型专家和数据统计专家历时多年精心打造。成为中国第一套高考志愿填报综合分析系统,信息最全最新的高考志愿填报综合分析系统,分析最科学、最精确的填报指导系统。<br /><br />目前已经开发了服务全国高考考生的志愿填报转载 2010-06-04 15:28:00 · 1082 阅读 · 0 评论 -
Linux下Apache + Tomcat*2集群 负载平衡配置
<br />安装JDK、安装Apache、安装Tomcat、配置Apache代理、配置Tomcat集群 <br /><br />一、安装JDK(所有运行Tomcat主机,即web服务器) <br /> 1.下载JDK的bin包,如jdk-1_5_0_02-linux-i586.rpm.bin ,给其添加执行权限,执行#./jdk-1_5_0_02-linux-i586.rpm.bin , 在 <br /><br />当前目录生成rpm安装包,同样给其添加执行权限。 再执行转载 2010-06-04 15:42:00 · 506 阅读 · 0 评论 -
amoeba与spring的分布式处理
由于amoeba不能处理事务,所以得在应用层进行事务处理,方案如下:原创 2010-06-04 16:04:00 · 2052 阅读 · 0 评论 -
系统架构师必备知识系统架构师必备知识
<br />软件架构一般概念<br />.软件架构师的角色以及最难处理的问题<br />.系统架构的核心原则<br />.系统架构设计的特点、层次、分类<br />.系统架构设计的构想、节奏、预测、验证<br />.系统架构设计的协作和简化<br />.系统架构的主要理论、方向和趋势<br />.如何成为一个好的系统架构师<br /><br />信息化模型与需求过程与领域建模<br />.网络支撑平台模型建立<br />.信息应用平原创 2010-06-04 15:12:00 · 1018 阅读 · 0 评论 -
设计模式
<br />设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 GoF的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。 一、设计模式和框架 现转载 2010-06-04 15:14:00 · 292 阅读 · 0 评论 -
腾讯敏捷框架TAPD(Tencent Agile Product Development)
<br />有一篇文章写得挺好.不知道原文出在哪儿.不确定是不是R&D研发总监(王速瑜)在QClub上讲的,这里和大家分享一下.文章主要介绍了敏捷开发的特性和框架,目标.我们可以把它看作是研发工程师的方法和思考,也可以看作是项目管理的流程和方法,FDD同样适用于视觉设计师及交互设计师.以及SCRUM运用在敏捷开发中的(产品->达标分解->冲刺->产品增量)模式同样值得每一位设计师思考.无论FDD还是SCRUM,告诉我们一个道理”结果很重要,方法更重要”.<br /><br />关于FDD和S转载 2010-06-04 15:15:00 · 1212 阅读 · 0 评论 -
软件架构学习
<br />软件架构设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单。本文从架构师职责、软件架构定义、设计架构、评估架构、架构管理等方面来描述了解软件架构的含义和怎样设计软件架构。<br /> <br />一、软件架构师的职责<br />架构师分为以下几大类:业务架构师、主题领域架构师、技术架构师、项目架构师(J2EE架构师、.NET架构师等)、系统架构师。<br />1、架构师的职责主要体现<br />架构师的职转载 2010-06-04 15:17:00 · 943 阅读 · 0 评论 -
2010架构技术建议
<br />编程语言<br />首先要能跳出语言之争及语言偏见,架构师需要在中立的角度选择最合适团队的语言,避免在技术决策中加入过多个人喜好。在系统语言层面,主要可关注以下几种<br />Erlang, 会继续在小圈子内流行,业界应用Erlang技术最大的障碍不是Erlang技术本身,而在于缺乏这方面专业人才。<br /><br />Scala, 和Erlang不同,Scala有成熟JVM及丰富的周边library,在异构系统中集成也很容易,新项目使用Scala风险很小,所以Scal转载 2010-06-04 15:26:00 · 409 阅读 · 0 评论 -
对扩展性的思考
<br />可扩展性(Extensibility): 构建灵活系统的思考<br />系统, 构建, 思考<br />从我理解,在软件范畴上,是软件系统本身的属性,或者进一步说是设计的属性,代码的属性。因为我们经常说设计的可扩展性,代码的可扩展性。那与之相对应的是什么呢?是变化,软件环境的变化(可能是业务环境,运行环境)导致软件要进行改动才能满足人们对它的要求,这种系统本身适应变化的能力就是可扩展性。<br /> 首先让我们来看看目前系统被扩展的几种形式:<br />转载 2010-06-04 15:27:00 · 538 阅读 · 0 评论 -
用(Hudson+Subversion+Ant+JUnit)搭建了个持续集成(Continuous Integration)环境
<br />为了让接下来的研发工作能更顺利地开展,我花了点时间给新团队搭建了个持续集成环境。这里用到的工具主要有:Hudson、Subversion、Ant及JUnit等等。关于持续集成这个概念,有兴趣的可以参考Martin Fowler的一篇文章:Continuous Integration。之前,对那些JAVA编写的服务程序,我们采用的构建方式很原始:手动写Shell脚本,把 SVN中的JAVA源码编译成JAVA字节码。应该说,在团队规模较小(不需要太多的协同工作)、部署环境单一(我们之前只部署原创 2010-06-04 15:34:00 · 1228 阅读 · 0 评论