- 博客(34)
- 资源 (6)
- 收藏
- 关注
原创 Reactor事件驱动的两种设计实现:面向对象 VS 函数式编程
Reactor事件驱动的两种设计实现:面向对象 VS 函数式编程这里的函数式编程的设计以muduo为例进行对比说明;Reactor实现架构对比面向对象的设计类图如下: 函数式编程以muduo为例,设计类图如下: 面向对象的Reactor方案设计我们先看看面向对象的设计方案,想想为什么这么做; 拿出Reactor事件驱动的模式设计图,对比来看,清晰明了;
2015-12-31 09:29:58 740 1
原创 单线程你别阻塞,Redis时延问题分析及应对
单线程你别阻塞,Redis时延问题分析及应对Redis的事件循环在一个线程中处理,作为一个单线程程序,重要的是要保证事件处理的时延短,这样,事件循环中的后续任务才不会阻塞; 当redis的数据量达到一定级别后(比如20G),阻塞操作对性能的影响尤为严重; 下面我们总结下在redis中有哪些耗时的场景及应对方法;耗时长的命令造成阻塞keys、sort等命令keys命令用于查找
2015-12-11 10:50:05 6817
原创 IO设计模式:Reactor和Proactor对比
IO设计模式:Reactor和Proactor对比平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学习下其模型结构,重点对比下两者的异同点;反应器ReactorReactor模式结构Reactor包含如下角色:Handle 句柄;用来标识socket连接或是打开文
2015-04-27 09:16:58 868
原创 发布《Linux工具快速教程》
发布《Linux工具快速教程》阶段性的完成了这本书开源书籍,发布出来给有需要的朋友,同时也欢迎更多的朋友加入进来,完善这本书; 本书Github地址:https://github.com/me115/linuxtools_rst在线阅读缘起Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择; 实际工作中,我们用到的工具,最常用的总是那么几个参数
2015-01-14 11:07:09 598
原创 收集互联网博客
中国的博客发展已有十余年历史;这些年诞生了不少高质量的博客,给大家带来了很多精品博文; 但是,人的精力和注意力是有限的,一旦博客不再更新后,它就渐渐的就淡出了互联网的舞台; 而这博客上的优秀作品也被历史潮水所淹没; 这样很遗憾,其实有不少博客的内容,都经得起时间的推敲。 我觉得有必要将这内容保存下来,供更多人阅读; 我喜欢阅读博客,也订阅了不少博客,对于同类精品文章,希望归集到一块;
2014-09-03 11:16:55 684
原创 NoSQL数据库:数据的一致性
NoSQL数据库:数据的一致性读取一致性强一致性 在任何时间访问集群中任一结点,得到的数据结果一致;用户一致性 对同一用户,访问集群期间得到的数据一致; 解决用户一致性:使用粘性会话,将会话绑定到特定结点来处理; 这样会降低负载均衡器的性能;最终一致性 集群中各结点间由于数据同步不及时造成暂时的数据不一致,但数据同步完成后,最终具有一致性;
2014-07-02 10:01:26 822
原创 架构核心五要素
架构设计中要考虑的核心五要素; 性能、可用性、扩展性、伸缩性、安全性性能性能的测试指标响应时间 应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标,直观地反映了系统的“快慢”。下表列出了一些常用的系统操作需要的响应时间。并发数 系统能够同时处理请求的数目吞吐量 单位时间内系统处理的
2014-04-16 20:34:24 1405
原创 《大型网站技术架构》读书笔记[2] - 架构的模式
《大型网站技术架构》读书笔记 - 架构的模式大CC上周写的读书笔记记录的是网络的升级路线,其中用到的各种技术手段只是点到即止(《大型网站技术架构》读书笔记 - 网站的技术升级路线);今天写的第二篇笔记,讨论架构的模式;这篇文章,其中主干是书中的重点笔记,分支和内容则是我展开的思考,如有不对的地方,还请大家指出;需要说明,模式不是万能的,任何模式都是一定应用场景的经验总结;离开具体的场景
2014-04-10 12:49:10 1172 1
原创 《大型网站技术架构》读书笔记 - 网站的技术升级路线
《大型网站技术架构》读书笔记 - 网站的技术升级路线 本文描述网站从小到大演变过程中的技术升级路线;1.初始架构一台服务器,应用、DB、文件都在一块,使用经典的LAMP模式构建整个站点; 优点很明显,开发部署都简单,船小好掉头,做不起来也亏不了多少;2.应用服务与数据分离随着访问量的增长,出现问题了:web性能变差,数据存储空间不够 这时候需要更多的服务器,首要
2014-04-03 19:35:34 1032 1
原创 如何做到早起一小时?
早起是个不过时的话题,在很多人心里都有一个早起的愿望,但总是难以付诸行动;在受到某篇文章或某本成功学书籍的刺激后,可能会有那么几天早起,而之后,又回到从前; 其实早起,并不是一件多困难的事,只要我们能掌握正确的方法;
2014-02-25 09:17:49 852
原创 《淘宝技术这十年》读书笔记 (含思维导图)
这本书很有趣,故事叙述好玩,且价值颇高; 它让更多人了解并熟悉淘宝,让我们近距离观察大公司成长过程中遇到的问题;我将从三个方面来做这个概要版的读书笔记;淘宝的升级路线叙述了淘宝的成长路线,如果能引起大家的兴趣,那最好,书中有详实有味的数据供人品味;淘宝创新的技术一节总结淘宝在壮大的道路中所创造的技术,其实很多在我们的日常应用中都能找到影子,所不同的是能够支撑的规模;最后一节出自这本书的最后一章,牛P列传;本书的作者采访了淘宝中的牛人,道出他们的成长经历,同时也能看到这些高人对新人的建议;豆瓣评分
2014-02-12 12:37:56 2718 2
原创 Redis 在新浪微博中的应用
Redis 在新浪微博中的应用Redis简介1. 支持5种数据结构支持strings, hashes, lists, sets, sorted setsstring是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;2. K-V 存储 vs K-V 缓存新浪微博目前使用的98%都是持久化的应用,2%的是缓存,用到了600+服务器Redis中持久化的应用和非持
2013-12-20 14:20:01 1728
原创 2013中国软件技术大会 参会笔录及感想
2013中国软件技术大会 参会笔录及感想参加完北京举行的软件技术大会,有感而发;大会会期两天,12.13-12.14;13日上午只有一个主会场,看看主会场的演讲主题,再看看出钱最多的赞助商,我们知道,一上午将都是广告;会议安排表:http://www.softcon.cn/schedule.asp做广告赞助厂商众多,在这个宣传的结点上,各大厂商都使出吃奶的力气;
2013-12-16 12:36:56 1571 1
原创 P2P小贷网站业务数据流程分享
P2P小贷网站业务数据流程引言这是去年年底开发的一个项目,完成后和用户的衔接没有很好的做起来,所以项目就搁浅了。9月以来,看各路P2P风声水起,很是热闹;这里分享下我的设计文档,算是抛砖引玉,如能提供一些借鉴意义,也不枉分享一场;本文用于说明P2P小贷项目的程序设计,包括程序系统的基本处理流程,模块划分、功能分配及UI设计等。开发目标1. 开发P2P网上借贷系统;2
2013-12-01 13:46:06 5370
原创 Linux Shell 文本处理工具集锦
本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;如果有更为复杂的任务需求,还是考虑python吧;
2013-11-18 09:13:13 1220
原创 书评 《软件随想录》
Joel的随想录,也就是他Blog上的文章的摘选;整本书看下来轻松,其中有不少文字在为他公司打广告、为自己摇旗呐喊;比如在选择程序员方面,他所认为的一些重要的因素,比如提供独立的办公室、更自由的空间、更多及更大的屏幕,都是他公司所能提供的;但是大家不要忘了,他的公司员工的人数是个位数(从书中的得出),书中所提出的各种因素,在扩大到一定规模后,不具有普遍的适用性和可行性;在过滤掉这些元素后,我整理了以下观点;
2013-10-14 14:27:15 970
原创 BerkeleyDB 多索引查询
由于性能原因,我们打算将关系型数据库转移到内存数据库中;在内存数据库产品的选型中,我们确定的候选对象有Redis和Berkeley DB;Redis查询效率不错,并且支持丰富的数据存储结构,但不支持多索引,这样对于比较复杂的sql移植可能会造成数据膨胀;Berkeley DB只支持简单的Key/Value, 但支持多索引查询,对我们目前的应用来说,移植起来更有优势;
2013-09-26 14:22:01 1030
原创 学习Berkeley DB- 入门
1 导言首先,我们要了解Berkeley DB的一些基本特性,在IBM的开发网站上有篇文章对其有比较清晰的介绍;这篇文章讲到了BDB的设计思想和核心数据结构、以及数据访问算法;并有常用函数使用范例;算是接触BDB的一个入门好材料;进入以下url阅读:http://www.ibm.com/developerworks/cn/linux/l-embdb/index.html 我
2013-09-17 12:24:43 866
原创 C++的性能优化实践
优化准则: 1. 二八法则:在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的;在优化实践中,我们将精力集中在优化那20%最耗时的代码上,整体性能将有显著的提升;这个很好理解。函数A虽然代码量大,但在一次正常执行流程中,只调用了一次。而另一个函数B代码量比A小很多,但被调用了1000次。显然,我们更应关注B的优化。2. 编完代码,再优化;编码的时候
2013-06-03 12:54:07 916
原创 轻松scrum之旅 思维导图读书笔记
学习一门新的技术通常分为两步,先是理论知识学习,再就是实践;在敏捷实践中,总是会遇到些问题;有些细节我们不知道如何处理,而身边也没有实施过敏捷的先例可以咨询;这时,这本书可能对你有些帮助。这是一本轻松的书,作者以自身的项目实践为原型,讲述了一个项目组从头开始实践敏捷的完整历程;本书最大的价值在于,作者将项目开发过程中遇到的各种问题都一一阐述,并给出合适的解决方法;以
2013-04-02 09:27:11 1465
原创 沟通至上 《高效程序员的45个习惯》读书笔记
《高效程序员的45个习惯》这本书的副标题是敏捷开发修炼之道,这是一本讲敏捷的书,如果你之前未接触过敏捷,从这本书,可以了解到敏捷的核心观点。这里面主要讲了三方面的内容,观念,沟通,以及编码。 观念我们首先从观念来看,提观念当然少不了敏捷宣言:个体和交互胜过过程和工具;可工作的软件胜过面面俱到的文档;客户的协作胜过合同谈判。响应变化胜过
2013-03-25 12:44:16 1551 1
原创 WEB站点性能优化实践(加载速度提升2s)
进行优化前,关键是剖析当前的web性能,找到性能瓶颈,从而确定最需改进的地方;如果精力有限,首先将精力放在能明显提升性能的改进点上;《高性能网站建设指南》提出了一个性能黄金法则:只有10%-20%的最终用户响应时间花在了下载HTML文档上;其余的80%-90%的时间花在了下载页面中的所有组件上。由于本文将实施一个完整的优化流程,所以,我们还是从后台开始; 案
2013-01-24 09:41:44 2320
原创 C++学习--应用篇(Windows/Linux)(书籍推荐及分享)
我将以平台划分,分别介绍Windows和Linux下个人认为的好书(与基础篇一样,大部分网络上都有电子版);对于C++基础类的图书,这里不再重复,有兴趣的朋友请移步《C++学习--基础篇》。 Windows:在Windows平台下主要说的是VC编程(使用MFC),以下将对VC开发的相关图书介绍;对于ATL等,涉及不多,不做评论; 《Windows程序
2013-01-11 12:29:00 1052 1
原创 C++学习–基础篇(书籍推荐及分享)
算起来,用C++已经有七八年时间,也有点可以分享的东西;以下推荐的书籍在木书架上大多有电子版。对于技术类书籍,电子版并不会带来一个好的阅读体验。如果喜欢,最好找纸版(图书馆是个好去处);电子版更适合作为一个参考书籍常备电脑。我将分为基础篇、Windows篇、和Linux/Unix篇 三个部分来介绍这些经典书籍: C++入门:《C++ Prime
2013-01-07 09:23:15 1134 2
原创 [python]通过ElementTree来操作XML
本文讲解如何通过ElementTree来操作XML。1.引入库 需要用到3个类,ElementTree,Element以及建立子类的包装类SubElement from xml.etree.ElementTree import ElementTree fro
2011-10-03 16:41:30 596
原创 创业如何选择WEB开发语言
在打算开发一个网站时,选择什么语言,是首先需要面对的问题。目前主流的WEB开发语言有ASP.NET、PHP、JSP; 作为MS上世纪老将ASP,就不再提及,如果是因为维护方面的原因而必须使用,可考虑升级到ASP.NET,而作为新开发一个语言,实在找不到理由再使用它了;以下将对
2011-09-27 15:46:25 1061
原创 Linux平台开发技术指南
以下技术和工具是Linux平台下工作的基础,熟练掌握:C++工作语言,重要性不言而喻;入门:《C++ Primer》http://book.douban.com/subject/1767741/《Effective C++》http://book.doub
2011-09-07 17:02:19 435
原创 python文本处理
日常操作中,少不了文本处理,如程序输入数据准备,python凭借其简洁优雅的语法,在文本处理上比C++等编译型语言开发效率高出一大截。文件操作示例#输入文件 f = open(r'D:\Python27\pro\123.bak') #输出文件 fw =
2011-09-01 22:52:00 1247
原创 DataScraper数据抓取快速入门
1.首先学习采集器的基本使用方法 可参考以下几篇文章: 网站采集器MetaSeeker v4.x速成手册:http://www.gooseeker.com/cn/node/document/metaseeker/cookbookv4/bookfront.html 案例:如何规划网站数据采集: http://www.gooseeker.com/cn/node/Fulelr/200912050
2011-06-19 11:37:00 2455
原创 JSon不能执行回调函数的原因
通过 $.getJSON(url,function (data) { }函数调用JSON服务,回调函数没能正确执行的主要原因就是服务器返回的JSON格式不正确, 具体表现在: 1.Response.ContenType没有正确设置: context.Response.ContentType = "application/json"; (c#环境) 2.JSON格式组装错误。 对于第2
2011-06-19 11:34:00 847
原创 memcache 安装 注意事项
本人实验目标机器:Sun Unix; 默认使用的编译器为CC;(使用此默认编译器并不成功,需改为gcc) 1.安装memcache之前需要安装libevent库。 注意需要安装对应支持的版本。我使用的是两个分别是: libevent-1.4.9-stable.tar.gz(下载:http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz)
2011-06-19 11:33:00 537
原创 实现windows与Unix/Linux编程环境同步
本文通过以下几步设置,实现在Windows下使用VS编程和调试,最终程序在Unix上运行。 需要的软件如下: cwRsync:客户端/服务器端同步软件 对于cwRsync的安装,这里不多做介绍,更多请参考: http://www.cnblogs.com/me115/archive/2011/02/28/1967213.html http://www.cnblogs.com/me115/a
2011-06-19 11:30:00 766 1
原创 CPPUnit 使用指南[Unix]
单元测试工具CPPUnit在Windows平台下使用图形界面,操作非常直观;但在Unix平台下,就需要花点功夫配置一番: 1.下载文件: 本人使用的是cppunit-1.12.0.rar 版本,可以在以下地址下载(http://u.115.com/file/f6a03bec8)共享有效期有一个月,这软件在网上也好找。如以上地址过期,未找到合适版本,请留言联系; 2.不用安装,直接将cppun
2011-06-19 11:23:00 596
原创 Tuxedo域连接配置
当多个域之间有Tuxedo服务调用关系,必须通过域连接才能实现正常调用。 通过以下步骤完成连接配置: 1 导出 首先,需要导出当前的域连接信息。通过管道将信息导入到一个文件中,当然,编辑钱不忘备份: dmunloadcf > dm.0616; cp dm.0616 dm.0616.bak; 2 dm格式说明 dm文件中主要有以下几个部分: *DM_LOCAL "ABC-25"
2011-06-19 11:22:00 4305
软件架构师应该知道的97件事.rar
2011-09-27
一线架构师实践指南(温昱).pdf
2011-09-27
架构之美 精选版.pdf
2011-09-27
[GTD] MyLife Organized 3.5 汉化版(10年4月1日)
2010-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人