07 2014 档案
摘要:今天在iteye上提了一个关于++操作和线程安全的问题,一位朋友的回答一言点醒梦中人,至此我对Java线程锁有了更加深刻的认识。在这里也做个总结供大家参考。 先看几段代码吧! 代码一:[java] view plaincopypublicclassTestMultiThread2implements...
阅读全文
posted @ 2014-07-30 08:59
弹着钢琴设计
摘要:为啥RESTFULL如此重要?2014-6-3 20:13| 发布者: admin| 查看: 57| 评论: 0|来自: java365摘要: 本文我们将讨论REST,它定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的Web服务,这是一个非常容易让人误解的概念。本文主要是写给那些想设...
阅读全文
posted @ 2014-07-29 16:28
弹着钢琴设计
摘要:首先要推荐一下:http://www.alidata.org/archives/1470阿里的大牛在上面的文章中比较详细的介绍了shuffle过程中mapper和reduce的每个过程,强烈推荐先读一下。不过,上文没有写明一些实现的细节,比如:spill的过程,mapper生成文件的 partiti...
阅读全文
posted @ 2014-07-29 11:01
弹着钢琴设计
摘要:Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解 MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapRed...
阅读全文
posted @ 2014-07-29 10:43
弹着钢琴设计
摘要:使用了几个月的hadoopMR,对遇到过的性能问题做点笔记,这里只涉及job的性能优化,没有接触到hadoop集群,操作系统,任务调度策略这些方面的问题。hadoop MR在做大数据量分析时候有限的计算资源情况下只能不断的优化程序。优化可以从两个方面进行:1.hadoop配置2.程序代码程序代码包括...
阅读全文
posted @ 2014-07-24 16:57
弹着钢琴设计
摘要:《大 数据技术丛书:Hadoop应用开发技术详解》共12章。第1~2章详细地介绍了Hadoop的生态系统、关键技术以及安装和配置;第3章是 MapReduce的使用入门,让读者了解整个开发过程;第4~5章详细讲解了分布式文件系统HDFS和Hadoop的文件I/O;第6章分析了 MapReduce的工...
阅读全文
posted @ 2014-07-24 11:14
弹着钢琴设计
摘要:转自:http://www.open-open.com/lib/view/open1370958898835.htmlMapReduce采用Master/Slave的架构,其架构图如下:它主要有以下4个部分组成:1)Client2)JobTrackerJobTracke负责资源监控和作业调度。Job...
阅读全文
posted @ 2014-07-24 11:01
弹着钢琴设计
摘要:谁在用 Hadoop这是个问题。在大数据背景下,Apache Hadoop已经逐渐成为一种标签性,业界对于这一开源分布式技术的了解也在不断加深。但谁才是 Hadoop的最大用户呢?首先想到的当然是它的“发源地”,像Google这样的大型互联网搜索引擎,以及Yahoo专门的广告分析系统。也许你会认为,...
阅读全文
posted @ 2014-07-24 09:32
弹着钢琴设计
摘要:淘宝在数据存储和处理领域在国内互联网公司中一直保持比较靠前的位置,而且由于电子商务领域独特的应用场景,淘宝在数据实时性和大规模计算及挖掘方面一直在国内保持着领先,因此积累了很多的实践的经验和产品。TimeTunnel基于Hbase打造的消息中间件,具有高可靠、消息顺序、事务等传统特性,还能按时间维度...
阅读全文
posted @ 2014-07-24 09:22
弹着钢琴设计
摘要:下面是Java线程系列博文的一个编目:Java线程:概念与原理Java线程:创建与启动Java线程:线程栈模型与线程的变量Java线程:线程状态的转换 Java线程:线程的同步与锁Java线程:线程的交互Java线程:线程的调度-休眠 Java线程:线程的调度-优先级Java线程:线程的调度-让步...
阅读全文
posted @ 2014-07-23 16:57
弹着钢琴设计
摘要:刚刚研究了一下线程池,如果有不足之处,请大家不吝赐教,大家共同学习、共同交流。在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内...
阅读全文
posted @ 2014-07-23 16:55
弹着钢琴设计
摘要:1.JobTracker能否决定给当前的TaskTracker节点分配一个Job的具体的哪一个任务?2.什么是map本地任务?3.nonRunningMapCache的作用是什么?4.从TaskTracker节点上分配挂载的本地任务时,如果以前发生过该TaskTracker节点执行某一Map任务失败...
阅读全文
posted @ 2014-07-23 16:54
弹着钢琴设计
摘要:Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法先来先服务(FIFO)Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。FIFO比较简单,hadoop中只有一个作业队列,被提交的作业按照先后顺序在作业队列中排队,新...
阅读全文
posted @ 2014-07-23 16:53
弹着钢琴设计
摘要:阅读本文思考:1.对磁盘IO了解多少2.为什么是磁盘IO是瓶颈,有没有自己的答案想了解磁盘io可以查看此帖:集群瓶颈:磁盘IO必读(磁盘IO:磁盘输出输出)集群的瓶颈提出多种看法,其中网络和磁盘io的争议比较大。这里需要说明的是网络是一种稀缺资源,而不是瓶颈。对于磁盘IO:当我们面临集群作战的时候,...
阅读全文
posted @ 2014-07-23 16:52
弹着钢琴设计
摘要:转自:http://www.cnblogs.com/sharpxiajun/p/3151395.html开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs 时候,就感觉到hdfs和mapreduce关系的紧密。这...
阅读全文
posted @ 2014-07-23 16:49
弹着钢琴设计
摘要:转自:http://blog.csdn.net/iamdll/article/details/20998035 分类: 分布式 2014-03-11 10:31 156人阅读 评论(0) 收藏 举报 目录(?)[+] Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解...
阅读全文
posted @ 2014-07-23 16:46
弹着钢琴设计
摘要:目录(?)[+]Author :岑文初Email: wenchu.cenwc@alibaba-inc.commsn:cenwenchu_79@hotmail.comblog:http://blog.csdn.net/cenwenchu79/引What is HadoopWhy is hadoopHo...
阅读全文
posted @ 2014-07-23 16:45
弹着钢琴设计
摘要:ational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。 VO,值对象(Value Object),PO,持久对象(Persisent Object),它们...
阅读全文
posted @ 2014-07-21 16:46
弹着钢琴设计
摘要:开发人员在使用Spring应用是非常擅长谈论依赖注入的好处。不幸的是,他们不是那么真的利用它的好处,如单一职责原则,分离关注原则。如果我们一起来看看大部分Spring的Web应用程序,常见的错误的设计如下:1.领域模型对象用来存储应用的数据(当作DTO使用),领域模型是贫血模型这样的反模式。2.服务...
阅读全文
posted @ 2014-07-21 16:39
弹着钢琴设计
摘要:源码下载地址:http://download.csdn.net/source/1662193一. 认识REST REST软件架构是由Roy Thomas Fielding博士在2000年首次提出的。他为我们描绘了开发基于互联网的网络软件的蓝图。REST软件架构是一个抽象的概念,是一种为了实现这一互联...
阅读全文
posted @ 2014-07-21 16:34
弹着钢琴设计
摘要:团购的用户习惯经过多年的“发酵”以后,大多数用户的团购习惯已经养成,同样一张电影票团购和直接现场购买的差价在一倍以上,当然O2O领域的其他情况也差不多,面对明显的“优惠”,用户当然乐意使用团购服务。很多人习惯把O2O称 之为闭环,从线上支付到线上所有购买活动,再重新回到线下进行消费,专家认为用户不离...
阅读全文
posted @ 2014-07-17 09:13
弹着钢琴设计
摘要:O2O营销模式又称离线商务模式,是指线上营销线上购买带动线下经营和线下消费。O2O通过打折、提供信息、服务预订等方式,把线下商店的消息推送给互联网用户,从而将他们转换为自己的线下客户,这就特别适合必须到店消费的商品和服务,比如餐饮、健身、看电影和演出、美容美发、摄影等。中文名O2O营销模式外文名O2...
阅读全文
posted @ 2014-07-17 09:12
弹着钢琴设计
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://oldboy.blog.51cto.com/2561410/736710如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(...
阅读全文
posted @ 2014-07-15 16:18
弹着钢琴设计
摘要::硬架构1:机房的选择:在 选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城市,机房价格越贵,从成本的角度看可以 在一些中小城市托管服务器,比如说广州的公司可以考虑把服务器托管在东莞,佛山等地,不是特别远,但是价格会便宜很多。2:带宽的大小...
阅读全文
posted @ 2014-07-15 15:50
弹着钢琴设计
摘要:一个小型的网站,比如个人网站,可以使用最简单的html静态页面就能实现了,配合一些图片达到美化的效果,所有的页面均放在一个目录下,这样的网 站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采 用的技术更是涉...
阅读全文
posted @ 2014-07-15 15:36
弹着钢琴设计
摘要:[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.09 转载请注明原文链接:http://blog.zyan.cc/post/385/] 曾经在七月,写过一篇文章──《基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计》,前公司的分类信息搜索基于此架构,效果明显,甚...
阅读全文
posted @ 2014-07-15 15:33
弹着钢琴设计
摘要:一个大型的网站网站应该由如下6个子系统组成负载均衡系统反向代理系统Web服务器系统分布式存储系统底层服务系统数据库集群系统为什么要做高并发系统设计?事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判 定这个连接理...
阅读全文
posted @ 2014-07-15 15:30
弹着钢琴设计
摘要:Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网 站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也 提出了新的要求...
阅读全文
posted @ 2014-07-15 15:27
弹着钢琴设计
摘要:从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流。转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441作者:杨步涛关注分布式架构、大数据、搜索、开源技术QQ:306591368技术B...
阅读全文
posted @ 2014-07-15 14:59
弹着钢琴设计
摘要:为什么要自己来搭建一个CDN服务器实现网站访问加速?一是免费CDN服务稳定性和加速效果都不怎么行;二是用国内的付费CDN服务价格贵得要死,一般的草根站长无法承受;三是最现实的问题国内的CDN要求域名Be案。有了Be案的域名自然是选择国内的主机,没有Be案的域名都是使用的美国主机,国内访问美国空间的速...
阅读全文
posted @ 2014-07-14 14:48
弹着钢琴设计
摘要:2011年11月26日 ? Web服务器架构 ? 评论数 2案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户、移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开www.abc.com很慢,甚至打不开解决方...
阅读全文
posted @ 2014-07-14 14:47
弹着钢琴设计
摘要:碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1、在移动机房放置一台nginx反向代理服务器2、通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3、nginx反向代理服务器与web服务器之间采用专线连接系统运维...
阅读全文
posted @ 2014-07-14 14:46
弹着钢琴设计
摘要:什么是CDNCDN的全称是Content Delivery Network,即内容分发网络。是位于网络层与应用层之间的网络应用,其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布 到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,...
阅读全文
posted @ 2014-07-14 14:38
弹着钢琴设计
摘要:这是上个月一次搭建多个静态文件节点的实践,转载自我的博客,欢迎交流。鉴于监管环境和网站速度之间的矛盾,目前的网络架构方式如下:1、web动态页面(含数据库)架设在位于美国西海岸的数据中心;2、静态文件,例如css、js、exe、图片存放在国内几台windows服务器上。如果你的网站是商用、盈利性的网...
阅读全文
posted @ 2014-07-14 14:37
弹着钢琴设计
摘要:看百度文档:http://wenku.baidu.com/view/e46d3c24aaea998fcc220eb2.html?pn=1
阅读全文
posted @ 2014-07-11 17:38
弹着钢琴设计
摘要:转自:http://china-chill.blog.163.com/blog/static/2049210522012101782432304/时间过得很快,来淘宝已经两个月了,在这两个月的时间里,自己也感受颇深。下面就结合淘宝目前的一些底层技术框架以及自己的一些感触来说说如何构建一个可 伸缩,高...
阅读全文
posted @ 2014-07-11 17:21
弹着钢琴设计
摘要:转自:http://www.cnblogs.com/yukaizhao/archive/2012/04/23/taobao_order_design.html周末参加了@淘宝技术嘉年华主办的技术沙龙,感觉收获颇丰,非常感谢淘宝人的分享。这里我把淘宝下单高并发解决方案的个人理解分享一下。我不是淘宝技术...
阅读全文
posted @ 2014-07-11 17:20
弹着钢琴设计
摘要:架构设计时就要订好分库策略,否则一方面技术设计会没有预留,另一方面数据模型设计上也会缺乏预留。分库有N种策略,比如:活跃库/历史库,读写分离,业务垂直分离等等。架构设计初期,订好未来将采用的分库策略,然后按该策略预留好技术支持和数据模型上的支持,比如:更新时间戳、数据属地信息、数据的业务分类信息等,...
阅读全文
posted @ 2014-07-11 17:04
弹着钢琴设计
摘要:转自:http://bbs.csdn.net/topics/390663807揭秘淘宝286亿海量图片存储与处理架构对我有用[0]丢个板砖[0]引用|举报|管理关注awzzz999awzzz999等级:#6得分:0回复于: 2013-12-09 12:41:51淘宝服务器架构框架图,简单实现.......
阅读全文
posted @ 2014-07-11 17:03
弹着钢琴设计
摘要:解决 Twitter的“问题”就像玩玩具一样,这是一个很有趣的扩展性比喻。每个人都觉得 Twitter很简单,一个菜鸟架构师随便摆弄一下个可伸缩的 Twitter就有了,就这么简单。然而事实不是这样, Twitter的工程副总裁 Raffi Krikorian细致深入的描述了在 Twitter在可伸...
阅读全文
posted @ 2014-07-11 16:56
弹着钢琴设计
摘要:转自:http://www.open-open.com/lib/view/open1389880948758.html引言:如今redis凭借其高性能的优势,以及丰富的数据结构作为cache已越来越流行,逐步取代了memcached等cache产品,在Twitter,新浪微博中广泛使用,阿里巴巴同样...
阅读全文
posted @ 2014-07-11 16:55
弹着钢琴设计
摘要:转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments根据系统内存64G估算单台tengine做反向代理最高支持72万连接。为了验证达到该连接数时系统稳定运行,进行压测,先验证nginx与client建立72万连接时性能(不转发)。关闭超...
阅读全文
posted @ 2014-07-11 16:54
弹着钢琴设计
摘要:转自:http://blog.sina.com.cn/s/blog_68b7d2f50101ann7.html服务器配置:单硬盘,SATA8MB缓存测试服务器和loadrunner运行服务器位于同一网段--100MB网络(同一交换机)上,排除网络问题的影响服务器运行始终,CPU使用率非常低没有超过5...
阅读全文
posted @ 2014-07-11 16:52
弹着钢琴设计
摘要:转自:http://server.chinabyte.com/6/12663506.shtml“好,时间到,开抢!”坐在电脑前早已等待多时的宋兰(化名)一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝网一年一度的大型网购促销活动——“淘宝双11”购物狂欢节。 宋兰不知道,就在11日零...
阅读全文
posted @ 2014-07-11 16:51
弹着钢琴设计
摘要:转自:http://wbj0110.iteye.com/blog/20366212011年小规模试水这一阶段的主要工作是建立了一个小的集群,并导入了少量用户进行测试。为了满足用户的需求,我们还调研了任务调度系统和数据交换系统。我们使用的版本是当时最新的稳定版,Hadoop 0.20.203和Hive...
阅读全文
posted @ 2014-07-11 16:50
弹着钢琴设计
摘要:转自:http://wbj0110.iteye.com/blog/2036613在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各类技术挑战。因此,架构方面的重点在于,...
阅读全文
posted @ 2014-07-11 16:49
弹着钢琴设计
摘要:一般来说nginx配置文件中对优化比较有作用的为以下几项:worker_processes 8;1 nginx进程数,建议按照cpu数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100...
阅读全文
posted @ 2014-07-11 10:17
弹着钢琴设计
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://freeze.blog.51cto.com/1846439/677348此文凝聚笔者不少心血请尊重笔者劳动,转载请注明出处。违法直接人肉出电话 写大街上。http://freeze.bl...
阅读全文
posted @ 2014-07-10 17:41
弹着钢琴设计
摘要:其实国内许多大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,比如说国内那些大型购物交易网站它们都将自己的网站首页、商铺、订单、买家、卖家等拆分不同的产品线,分归不同的业务团队负责; 集体到技术,也会根据产品线划分,将一个网站拆分成许多不同的应用,每个应...
阅读全文
posted @ 2014-07-10 17:38
弹着钢琴设计
摘要:随着网站业务的不断发展,用户的规模越来越大;介于中国无比蹩脚复杂的网路环境;南电信;北联通;中间竟然只用一条链路进行互联通信!有研究表明,网站访问延迟和用户流失率正相关,网站访问速度越慢,用户越容易失去耐心而离开。为了提高更好的用户体验,留住用户,网站需要加速网站访问速度。如今主要的手段只有使用CD...
阅读全文
posted @ 2014-07-10 17:37
弹着钢琴设计
摘要:其实大多数互联网网站起初的网站架构都是(Linux+Apache+MySQL+PHP). 不过随着时代的发展,科技的进步.互联网进入寻常百姓家的生活。所谓的用户的需求,铸就了一个个互联网大牛;http://www.trueland.net/IndustryNews/gjszl.shtml近日研究机构...
阅读全文
posted @ 2014-07-10 17:28
弹着钢琴设计
摘要:标签:varnish简介杂谈作者:袁伟Varnish是一个轻量级的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点,现在的Varnish总共代码量不大,功能上虽然在不断改进,但是还需要继续丰富和加强。下面总结了Varnish的一些特点:(1)是基于内存缓存,重启后数...
阅读全文
posted @ 2014-07-10 17:25
弹着钢琴设计
摘要:DRBD概述Distributed Replicated Block Device(DRBD)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像。DRBD工作在内核 当中的,类似于一种驱动模块。DRBD工作的位置在文件系统的buffer cache和...
阅读全文
posted @ 2014-07-10 16:18
弹着钢琴设计
摘要:LVSIP:Eth0:192.168.100.115Eth1:192.168.100.215Vi/etc/init.d./lvs#!/bin/sh# # lvsStart lvs # # chkconfig: 2345 08 92 # description: Starts, stops and ...
阅读全文
posted @ 2014-07-10 07:32
弹着钢琴设计
摘要:QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器...
阅读全文
posted @ 2014-07-10 07:32
弹着钢琴设计
摘要:1、至少精通一门2、如果这门不是c,请再精通第二门,那就是c3、如果前两条符合,其他语言想怎么玩就怎么玩,一个月上手不是难事4、精通c不是件容易的事,最好是大学花4年的时间来深入研究5、如果大学没深入研究过c,请在工作后花5年时间研究我觉得把C改成C++更准确一点。另外,应该至少精通一门编写cs的语...
阅读全文
posted @ 2014-07-10 06:55
弹着钢琴设计
摘要:架构设计时就要订好分库策略,否则一方面技术设计会没有预留,另一方面数据模型设计上也会缺乏预留。分库有N种策略,比如:活跃库/历史库,读写分离,业务垂直分离等等。架构设计初期,订好未来将采用的分库策略,然后按该策略预留好技术支持和数据模型上的支持,比如:更新时间戳、数据属地信息、数据的业务分类信息等,...
阅读全文
posted @ 2014-07-10 06:53
弹着钢琴设计
摘要:术语说明:QPS = req/sec = 请求数/秒【QPS计算PV和机器的方式】QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 * 请求时间 )QPS: 单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV = QPS * 36...
阅读全文
posted @ 2014-07-10 06:52
弹着钢琴设计
摘要:说明:以下内容参考了抚琴煮酒的《构建高可用Linux服务器》第六章内容.搭建负载均衡高可用环境相对简单,主要是要理解其中原理。此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按需求取舍。目前,在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LVS,Nginx及HAProxy...
阅读全文
posted @ 2014-07-10 06:51
弹着钢琴设计
摘要:摘要 心跳协议,对基于CS模式的系统开发来说是一种比较常见与有效的连接检测方式,最近在用MINA框架,原本自己写了一个心跳协议实现,后来突然发现MINA本身带有这样一个心跳实现,感于对框架的小小崇拜,在实践的同时研究了一下!MINA TCP/IP SOCKET 心跳 MINA本身提供...
阅读全文
posted @ 2014-07-09 09:02
弹着钢琴设计
摘要:read属于系统调用,它的缓存是基于内核的缓冲,是记在内核空间的. 而fgetc是标准函数, 是在用户空间I/O缓冲区的比如用fgetc读一个字节,fgetc有可能从内核中预读1024个字节到I/O缓冲区中,再返回第一个字节,这时该文件在内核中记录的读写位置是1024,而在FILE结构体中记录的读写...
阅读全文
posted @ 2014-07-08 21:24
弹着钢琴设计
摘要:用户程序调用C标准I/O库函数读写文件或设备,而这些库函数要通过系统调用把读写请求传给内核,最终由内核驱动磁盘或设备完成I/O操作。C标准库为每个打开的文件分配一个I/O缓冲区以加速读写操作,通过文件的FILE结构体可以找到这个缓冲区,用户调用读写函数大多数时候都在I/O缓冲区中读写,只有少数时候需...
阅读全文
posted @ 2014-07-08 21:23
弹着钢琴设计
摘要:PS:这里的缓冲与非缓冲的区别是相对于用户进程,下文的“非缓冲文件系统”指用户的程序没有缓冲区,不要误解为系统没有缓冲区。1.缓冲文件系统缓 冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”...
阅读全文
posted @ 2014-07-08 14:53
弹着钢琴设计
摘要:网上关于文本文件与二进制文件的文章很多,但遗憾的是,这些文章讲得都比较散。下面我将结合所查到的资料,从多个角度谈谈文本文件与二进制文件。一、文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。...
阅读全文
posted @ 2014-07-08 14:53
弹着钢琴设计
摘要:之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看,对于学生来说,拿来当简历,含金量还是足够的。如果把程序里所涉及的HTTP协议,Linux下POSI...
阅读全文
posted @ 2014-07-08 14:51
弹着钢琴设计
摘要:在Linux系统中,系统默认认为每个进程打开了3个文件,即每个进程默认可以操作3 个流,即标准输入了流(/dev/stdin),标准输出流(/dev/stdout),标准错误输出流(/dev/stderr),每个进程默认从标准 输入流中读取数据,从标准输出流些正确的信息,向标准错误输出流些错误信息。...
阅读全文
posted @ 2014-07-08 14:07
弹着钢琴设计
摘要:近期看到了文本流和二进制流的区别,书上讲的比较含糊,理解不透彻,于是细细琢磨了下,把心得跟大家分享一下:一、首先回答,什么是文件,流 一个文件通常就是磁盘上的一段命名的存储区。比如 stdio.h 就是一个包含一些有用信息的文件的名称。 C将文件看成是连续的字节序列,其中每一个字节都可以单独地读...
阅读全文
posted @ 2014-07-08 14:06
弹着钢琴设计
摘要:在Discuz!NT的最新版本(企业版)中,支持目前主流LINUX平台上的负载均衡解决方案,比如NGINX,HAPROXY,LVS等。本文与其说是解决方案,倒不如说是介绍如何搭建Discuz!NT负载均衡解决方案:)因为我们的产品运行的主流平台是WINDOWS+IIS+SQLSERVER(2000以...
阅读全文
posted @ 2014-07-07 08:28
弹着钢琴设计
摘要:1、linux的网络接口之扫盲 (1)网络接口的命名 这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如: eth0: ethernet的简写,一般用于以太网接口。 wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。 ath0: Ather...
阅读全文
posted @ 2014-07-03 13:48
弹着钢琴设计
摘要:什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是keep...
阅读全文
posted @ 2014-07-03 13:47
弹着钢琴设计
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://sery.blog.51cto.com/10037/263515 分布式文件系统MFS(moosefs)实现存储共享(第二版)作者:田逸(sery@163.com) 由于用户数量的不...
阅读全文
posted @ 2014-07-03 13:45
弹着钢琴设计
摘要:缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。 为什么要引入缓冲区 比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区...
阅读全文
posted @ 2014-07-03 10:34
弹着钢琴设计
摘要:作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码...
阅读全文
posted @ 2014-07-03 08:57
弹着钢琴设计
摘要:这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。本文Android反编译教程,测试...
阅读全文
posted @ 2014-07-03 08:56
弹着钢琴设计
摘要:有些APK程序里的图标、图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标、图片提取出来就好了,其实这是可以办到的,请看教程。 本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法基本相同。以下内容需要在电脑中进行操作。 1.用压缩软件打开APK APK程序其实就是个ZIP...
阅读全文
posted @ 2014-07-03 08:55
弹着钢琴设计
摘要:如果你的程序因太大(超过640KB)而无法在DOS下运行,有两种办法可为该程序提供更多的内存。一种办法是使用覆盖管理程序(overlay manager)。覆盖管理程序用来管理程序的模块,并根据需要把它们从磁盘中读入内存或从内存中删去。这样,即使你的程序有几兆字节那么大,仍然可以在 只有640KB可...
阅读全文
posted @ 2014-07-02 05:40
弹着钢琴设计
摘要:DOS用一种段地址结构来编址计算机的内存,每一个物理内存位置都有一个可通过段地址一偏移量的方式来访问的相关地址。为了支持这种段地址结构,大多数C编译程序都允许你用以下6种存储模式来创建程序:-------------------------------------------------------...
阅读全文
posted @ 2014-07-02 05:40
弹着钢琴设计
摘要:要了解调试程序的最好方法,首先要分析一下调试过程的三个要素:应该用什么工具调试一个程序?用什么办法才能找出程序中的错误?怎样才能从一开始就避免错误?应该用什么工具调试一个程序?有经验的程序员会使用许多工具来帮助调试程序,包括一组调试程序和一些"lint”程序,当然,编译程序本身也是一种调试工具。在检...
阅读全文
posted @ 2014-07-02 05:40
弹着钢琴设计
摘要:DOS用一种分段结构来寻址计算机的内存,每一个物理存储位置都有一个可以用段一偏移量方式来访问的相关地址。例如,下面就是一个典型的段式地址: A000:1234冒号左边的部分代表段地址(A000),冒号右边的部分代表相对于段地址的偏移量。DOS下的每个程序都是按这种方式访问内存的——尽管段一偏移量寻址...
阅读全文
posted @ 2014-07-02 05:16
弹着钢琴设计
摘要:Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。 LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 ...
阅读全文
posted @ 2014-07-01 13:50
弹着钢琴设计
浙公网安备 33010602011771号