摘要: 一、基础设施服务AWS共提供14类28项服务,大致可分为计算、存储、应用架构、特定应用、管理这五大类:1、计算类服务EC2:虚拟机实例,有标准型、大内存、高运算能力、带10G网络的HPC、GPU等多种类型、Win/Linux OS、主流WEB、应用服务器、数据库。可自动按需伸缩。本机没有持久化的存储Elastic MapReduce:MapReduce型分析,基于Hadoop,支持Hive/Pig。能处理EC2和S3中的数据2、存储类服务S3:海量文件存储。分高可靠和低可靠两类。SimpleDB:高可伸缩的简单结构化数据存储,支持极大数据量。强一致和最终一致可选。条件更新RDS:打包好的MyS 阅读全文
posted @ 2012-11-19 13:55 visionwang 阅读(3535) 评论(0) 推荐(0) 编辑
摘要: 1.Mongodb bson文档型数据库,整个数据都存在磁盘中,hbase是列式数据库,集群部署时每个familycolumn保存在单独的hdfs文件中。2.Mongodb 主键是“_id”,主键上面可以不建索引,记录插入的顺序和存放的顺序一样,hbase的主键就是row key,可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。字典序对int排序的结果是1,10,10 阅读全文
posted @ 2012-11-17 23:36 visionwang 阅读(10003) 评论(0) 推荐(1) 编辑
摘要: ADO.NET已经为我们提供这样的连接池管理,每个连接字符串产生一个连接池,设置了池的最大连接数,尽管你在DBConnection上使用close或者dispose,连接都没有被关闭,其实是返回到池,由池来管理这些连接,等待下次请求。除非连接池中的连接全部关闭,连接池才从内存中释放。多个不同的的连接字符串,产生多个连接池。如何实现连接池?确保你每一次的连接使用相同的连接字符串(和连接池相同);只有连接字符串相同时连接池才会工作。如果连接字符串不相同,应用程序就不会使用连接池而是创建一个新的连接。优点使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程 阅读全文
posted @ 2012-11-16 23:34 visionwang 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 首先是如何检查SQL的效率. 1.善用 EXPLAIN 设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行数(rows)是否太大。 一般来说. rows<1000,是在可接受的范围内的。 rows在1000~1w之间,在密集访问时可能导致性能问题,但如果不是太频繁的访问(频率低于1分钟一次),又难再优化的话,可以接受,但需要注意观察 rows大于1万时,应慎重考虑SQL的设计,优化SQL,优化db,一般来说不允许频繁运行(频率低于1小时一次)。 rows达到10w级别时,坚决不能做为实时运行的SQL。但导数据场合除外,... 阅读全文
posted @ 2012-11-16 23:24 visionwang 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.infoq.com/cn/news/2008/11/rack-cache缓存Web应用的方式有很多,他们通常都很复杂。随着应用基础设施的不断增加,基本的Rails页面缓存的管理变得越发单调乏味了。Rails 2.2通过HTTP headers:last_modified与etag引入了条件性GET。Ryan Tomayko遵循着RFC2616中的internet标准缓存说明引入了Rack::Cache。Rack::Cache是Rack中间件的一部分,它通过基本的存储方式(磁盘、堆及memcache)与针对缓存策略的配置系统实现了RFC2616中的大多数缓存特性。 阅读全文
posted @ 2012-11-01 10:03 visionwang 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 通过ConfigurationManager.RefreshSection刷新某一配置节点,我们获取配置值的时候就不需要重启服务,例如:ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。在这个网站上面的http://stackoverflow.com/questions/590791/do-you-have-to-restart-a-windows-service-if-you-change-the-app-config/提供的方案。为什么加了那一行Configurati 阅读全文
posted @ 2012-09-21 10:27 visionwang 阅读(378) 评论(0) 推荐(0) 编辑
摘要: Code Review主要检查代码中是否存在以下方面问题:代码的一致性、编码风格、代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能)等等。1.完整性检查(Completeness) 代码是否完全实现了设计文档中提出的功能需求 代码是否已按照设计文档进行了集成和Debug 代码是否已创建了需要的数据库,包括正确的初始化数据 代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型 2.一致性检查(Consistency) 代码的逻辑是否符合设计文档 代码中使用的格式、符号、结构等风格是否保持一致 3.正确性检查(Correctness) 代码是否符合制定的标准 所有的变量都被正确 阅读全文
posted @ 2012-09-15 22:18 visionwang 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 1.容灾能力2.适用场景接下来会有个分布式文件系统的系列。 阅读全文
posted @ 2012-09-15 22:12 visionwang 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 版本升级。用户角度上看,客户端升级必须让用户手动下载整个新的安装包覆盖安装,而web的升级无需用户做任何事情。开发角度上看,如果客户端有个小bug需要紧急修复,需要修复完后打包一个完成的安装包,给一个版本号,发布给用户升级。而web只需要修改后台的某些文件,然后传到自己的服务器,用多快速的迭代开发方式都没问题。web没有版本兼容性问题,客户端这个问题就大了。iOS客户端用编译语言,web用脚本语言。编译语言好处:很多错误编译期就知道,不用担心类似写错一个字母导致的问题。iOS客户端开发只能用XCode,无法选用自己喜欢的编辑器。使用脚本语言的web无论前端后端对编辑器的选择都很自由。客户端一碰 阅读全文
posted @ 2012-09-15 12:38 visionwang 阅读(4201) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://www.lamppr.com/node/577Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。下面介绍一下如何在一台服务器上配置Nginx + Mongrel cluster。获得Nginx,这里我们假设大家是通过自己编译,并配置了默认的编译的参数,此处使用的是Nginx 0.5.x版。配置Mongrel cluster我们还需要获得Mongrel和其Cluster插件(用来方便得启动多个Mongrel进程),如下通过gem进行安装:gem i - 阅读全文
posted @ 2012-09-13 09:42 visionwang 阅读(231) 评论(0) 推荐(0) 编辑