自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 资源 (13)
  • 收藏
  • 关注

原创 浏览器三种刷新方式所采取的缓存机制

众所周知浏览器是通过Last-Modified和Expires来处理缓存的,具体机制就不做解释,而在具体调试中发现并不按我们想象的方式进行,其原因很有可能是由于你的不同刷新方式导致。对于大多数浏览器而言,有三种刷新方式:F5Ctrl+F5“转至”或地址栏里回车而这三种刷新方式会导致浏览器采取不同的缓存机制:F5:不允许浏览器直接使用本地缓存,因此Last-Mod

2010-04-16 16:12:00 4166 1

原创 解读phpwind的主题定制化设计

最近研究phpwind源码过程中,发现它对发帖主题具有可定制化能力,而不是一概标准贴格式,能够根据具体应用场景定制化属性,让帖子信息结构化起来,具体功能以房屋买卖版块为例,可以分为出租、出售、求购等类型的帖子,如下图所示: 发帖的时候,能根据类型,定制各个属性,以出租为例,如下图所示:  在列表展示页里,也能根据定制化属性,来显示列表,以出租为例: 

2010-04-16 10:28:00 6691

原创 web服务器并发策略

web服务器并发策略无外乎从连接方式和IO策略上做文章了。连接方式有短连接和长连接之分,并且也有单进程和多进程之分。IO策略有阻塞和非阻塞之分,也有同步和异步之分。以上这些概念不做过多解释,关键看看有哪些组合,其实常见的web服务器并发策略就是这些方式的组合。一个进程处理一个连接,非阻塞I/O 这种策略下又分为:1)主进程使用非阻塞啊accept()来接收连接,当建立连接后,主

2010-04-11 18:39:00 3982 2

原创 面试别人实际是在考验自己

最近开始参与面试工作,发现面试对于考官而言是个不小的挑战,需要考官在短短一小时之内能引导面试者把其最真实的特点表现出来。一个成功的面试并不是出一些刁难的题让面试者陷入困境,而是通过来来回回的较量和观察,把其最真实的优点和缺点发掘出来。直接问别人优点和缺点是很傻的,面试者大多都会准备这样常规性问题,他的回答也肯定有特定的修饰,他的特点、优点和缺点不是他直接告诉你,而是你在一问一答中发掘出来。

2010-04-09 08:45:00 3220 3

原创 做好PM的几个关键事项

在项目过程中,通过观察,感觉做好PM这个角色需要做好以下几点:对项目关键点的细节要足够了解虽然PM可以不参与具体的编码工作,但并不等于不需要了解具体的实现细节,特别是一些影响项目成败的关键点。有些PM离技术越来越远,远到一些功能是怎么实现的、用的是什么技术、有哪些地方需要特别注意都不清楚,这会非常影响他的决策力和判断力,特别是在处理突发事件时会手足无措。在现阶段,特别是项目规模不大

2010-04-03 20:29:00 6253 3

原创 一种封装多种实现的RPC设计

RPC(远程过程调用)是一种调用远程程序的协议,可以实现RPC的方案很多,比如RMI、Hessian,还有公司自己开发的dbo和TB-Remoting(实际上是基于Hessian和mina实现的),各种RPC的API差异很大,很多系统之间的远程接口调用总会就RPC的调用细节花费很多时间,因此设计一个实现细节对调用者透明的RPC统一框架是非常必要的。最近在学习公司平台产品dubbo时,就发现提供了一

2010-03-31 15:22:00 6600 2

原创 关于C3P0容错和自动重连特性的研究

最近常有数据库和网络设备升级和搬迁等事情,而各个应用都是基于数据库连接池做的,大部分都是基于C3P0,数据库或网络状况的变动都会导致客户端连接池中的connection失效,如何剔除这些blocked connection就和C3P0的各个配置息息相关。这两天,搭了个实验环境,根据C3P0的配置说明和实验结果,把C3P0关于这块的机制解析了一番。先看看我的结论:1)C3P0容错和自动重连与

2010-03-27 11:28:00 13681 2

原创 关于nio和tomcat6的一些有用图示

nio不太好理解,tomcat6在nio方面做了不小的支持,从那里可以学习到如何用好nio,下面是几张在网上找到的关于nio的架构图,可以帮助理解BIO与NIO的区别: tomcat 5与tomcat 6 的区别:tomcat5: tomcat6: 

2010-03-23 13:10:00 4425

原创 规则引擎drools初探

在研究开源计费系统jbilling过程中发现它是用规则引擎来扩展业务逻辑,实现是基于开源规则引擎drools。而我现在做的计费系统也在打算打造一个可以通过配置来应付千变万化的批价规则和促销方案,感觉drools很符合我的需求,初步了解后发现它有如下优点:和Java系统无缝集成支持热部署规则支持“人类语言”规则编辑比较完善的管理系统和开发环境通过samples和文档进行了

2010-03-20 20:57:00 9981 1

原创 操作系统的精髓

最近闲暇之余翻出大学时期操作系统课本,以系统架构的角度重新学习操作系统。当不再把操作系统当作技术和知识点来学习的时候,完全有了另外一种认识,以前感觉操作系统是个集各种高端技术的领域,是那些技术大牛搞的领域,现在的感觉是操作系统实际上就是个管理制度的集合,像一个公司甚至是社会,为了让这个公司运行正常,管理者想出各种办法制定了各种政策,很多政策的制定并不是天才们的凭空发明,而是在被各种问题给“逼”

2010-03-20 14:56:00 3957 3

转载 HDFS+MapReduce+Hive+HBase十分钟快速入门(转)

HDFS+MapReduce+Hive+HBase十分钟快速入门 1.     前言本文的目的是让一个从未接触Hadoop的人,在很短的时间内快速上手,掌握编译、安装和简单的使用。2.     Hadoop家族截止2009-8-19日,整个Hadoop家族由以下几个子项目组成:成员名用途Hadoop CommonH

2010-01-26 08:36:00 14797 32

原创 关于Scalability和Performance的一些观点

最近一直在研究Scalability和Performance,没事就泡在InfoQ上,看了些文章,从中摘入了些比较赞同的观点:performance and ScalabilityPerformance is about the resources used to service a single request.Scalability is about how resou

2010-01-21 08:33:00 4945

原创 听完蔡学镛的分享《不瞌睡的PPT制作秘诀》后的总结

今天支付宝架构师蔡学镛给我们做了次有关PPT的分享,以前只知道蔡学镛是位Java大师,今天才知道他在演说和分享方面也颇有心得,听完分享感觉非常有收获,很值得总结一把。今天他做分享的PPT就很有示范作用,非常符合他所宣扬的PPT原则和要领,链接如下:http://www.slideshare.net/heypig/caffeinenicotine-ppt分享要点如下:1)做PPT犹如

2010-01-11 18:45:00 7256

转载 2010年十大热门技术(转)

著名科技博客网站TechCrunch昨天发文,综述了2010年最受关注、最具影响力的十项技术。其中多项技术均与Google、移动应用和社交网几个关键词关系密切。下面是此文的编译,其中有CSDN记者的点评。1. 平板电脑关于苹果平板电脑(据传可能名为iSlate)发布的消息已经不绝于耳,而苹果的最大竞争对手将是基于Android的各厂商产品。 2. 地理应用随着手机中GPS芯片和

2010-01-09 18:25:00 2803 6

转载 转一篇架构师间的问答------如何对应大数据量网站的考验

提问嘉宾: 林昊,网名BlueDavy,China OSGi User Group Director,淘宝网平台架构部架构师,个人的研究方向主要为Java模块化、动态化系统的构建以及高性能的大型分布式Java系统的构建。曾编写《OSGi实战》和《OSGi进阶》两篇Opendoc,为OSGi在中国的推广起到了很大的作用。回答嘉宾: 黄冬,有多年软件开发、系统架构、系统运营的经验验。长

2010-01-09 14:11:00 4353 1

原创 文档形式的变化带来的改观

在以前的项目里为了写作方便,总是以word文档的方式提供架构和设计文档,带来的好处仅仅是自己写作起来较为方便,但带来的麻烦却有很多,比如:更新文档较为麻烦。他人浏览较为麻烦,特别当需要从docx转换到doc的时候。很难形成与其他文档的联系。难以协同合作以上的缺点导致很不好的后果:设计有了更新却懒于同步到文档里,他人也不愿看文档,干脆直接来问设计者,文档支凌破碎,写文档成

2010-01-09 11:03:00 2904

原创 基于Spring AOP实现对外接口的耗时监控

AOP是Spring的核心,Spring不但自身对多种框架的集成是基于AOP,并且以非常方便的形式暴露给普通使用者。以前用AOP不多,主要是因为它以横截面的方式插入到主流程中,担心导致主流程代码不够清晰,定位问题不够方便,而在计费二期的项目里需要一个很适合用AOP来做的功能,就是要把对外接口和所调用的外部接口的耗时时间给记录下来,这个需求主要来自于计费一期的联调,常常发生系统间交互不够顺畅的情况,

2010-01-09 10:35:00 12500 1

原创 如何保证架构设计的稳定性------项目前后两次架构设计对比

计费中心一期已做完,今天重新根据已开发的代码画了下类图和时序图,发现和项目开发之前画的有了很大变化,这说明之前的架构设计缺乏稳定性,经不起开发细化过程中的推敲。因此有必要对比一下改动点,吸取经验,争取在下次做架构的时候考虑更全面。下面以周期性批价计费这个场景为例,首先看看开发前的类图:再来看看开发过后的类图:通过对比发现存在以下问题:没有高类聚导致没有低耦合。开发前的设计没

2009-12-29 13:39:00 7024

原创 Tomcat源码分析(四)------ Request和Response处理的全过程

从Tomcat源码分析(二)可知,用户的一个请求会经过n个环节的处理,最后到达开发人员写的Servlet,传给Servlet也就是HttpServletRequest和HttpServletResponse,因此可以认为这一路走下来无非就是把最原始的Socket包装成Servlet里用到的HttpServletRequest和HttpServletResponse,只不过每个环节完成的包装功能和部

2009-12-28 15:48:00 15560 8

转载 大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行

2009-12-27 13:45:00 6547 1

原创 Tomcat源码分析(三)------ 可携带状态的线程池

最近想实现一个可携带状态的线程池,具体需求就是池中的线程被用来处理某种信息,而此信息可视为线程所依赖的外部状态。如果用简单的线程池来实现,线程初始化时就得赋予某些信息,使得线程无法被再次利用。在看老版Tomcat的源码时,找到了答案,其实现思路主要是利用了线程的等待和唤起,HttpProcessor的实现正好基于此思路,时序图如下所示:初始化HttpProcessor线程时,没法赋予所需的

2009-12-26 16:52:00 11098 2

原创 第一次做项目发布员的一些总结

在以前做钱掌柜的时候就想着做项目发布员,因为做这项工作可以帮助你对整个项目实际运转情况摸得更清楚,但后来还是放弃了,主要是感觉自己比较毛糙,不太适合做这项风险较高的工作。可这次计费中心项目让我没有退路,只有自己可以顶上去。计费中心是个新项目,发布环境和生产环境都为0,难点就在于需要从头开始搭建基础设施。这个项目构建用的是maven而不是以前阿里自制的antx,所以项目结构和构建脚本与以前项目都

2009-12-26 10:21:00 7504

原创 Tomcat源码分析(二)------ 一次完整请求的里里外外

前几天分析了一下Tomcat的架构和启动过程,今天开始研究它的运转机制。Tomcat最本质就是个能运行JSP/Servlet的Web服务器,因此最典型的应用就是用户通过浏览器访问服务器,Tomcat接收到请求后转发给Servlet,由Servlet处理完后,把结果返回给客户端。今天就专门解析一下这么一个完整的请求的内部机理。通过DEBUG,一路跟下来,发现Tomcat处理请求的

2009-12-19 21:35:00 33371 11

原创 Tomcat源码分析(一)------ 架构

废话少说,拉代码,导入eclipse开干,具体步骤可以参考http://hi.baidu.com/hateeyes/blog/item/7f44942a20ad8f9d023bf66d.html下面谈谈我对Tomcat架构的理解总体架构:面向组件架构基于JMX事件侦听1)面向组件架构tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成

2009-12-14 19:51:00 102143 23

原创 Quartz源码分析(一)------ 以线程等待的方式实现按时间调度

Quartz是运用最广的任务调度框架,它最核心的组成部分是Scheduler、Trigger、JobDetail,然后给Scheduler配置个线程QuartzSchedulerThread,此线程在Scheduler初始化时启动,等待Scheduler start,然后从JobStore里拿到最近要触发的Trigger,以线程等待的方式等到trigger触发时间点,之后就是执行trigger所关

2009-12-08 16:21:00 23896 9

原创 架构师的沟通方式

架构师是个很需要沟通技巧的角色,需要和老板沟通,使其相信在技术上的可行性;需要和PD沟通,弄清楚商业逻辑;需要和项目经理沟通,使其更科学地安排人员和进度;需要和开发人员沟通,使其理解设计思路,保障设计架构在具体实施中得以落实;需要和QA沟通,使其了解项目的风险点和关键点。因此,架构师需要在沟通上下功夫,这是保障工作顺利进行的关键环节。下面是我总结的几个很常用的沟通方式:挑衅式的沟通方式

2009-12-06 20:14:00 3863

原创 Hessian源码分析(三)------ HessianSkeleton

HessianSkeleton是Hessian server端的核心类,主要功能是接收网络输入流(被包装为AbstractHessianInput),反序列化输入流得到methodName和参数,然后调用服务端的服务,得到结果后序列化为输出流,返回给客户端,主要流程如下图所示:HessianSkeleton的核心代码如下所示:public void invoke(Object se

2009-12-05 16:05:00 6180 2

原创 Hessian源码分析(二)------ HessianProxy

Hessian在客户端一块采用Proxy模式,当客户端调用远程接口时,HessianProxy会代理这个动作,在invoke方法中,把客户端请求的方法和参数序列化为预订格式的输出流,主要流程如下图所示: 下面我将详细解析一下invoke源码:public Object invoke(Object proxy, Method method, Object []args)

2009-12-05 15:05:00 8391

原创 hessian源码分析(一)------架构

在计费中心的对外交互这块采用了hessian,有必要对hessian的运行机理和源码做一定的解析。大致翻了翻源码后,发现hessian的主要结构分客户端与服务端,中间基于http传输。客户端主要做的事情是把对远程接口调用序列化为流,并传输到服务端;服务端主要做的事情是把传输过来的流反序列化为对服务的请求,调用相应服务后把结果序列化为流返回给客户端。一次完整的调用如下图所示:Hess

2009-12-05 11:01:00 11731 2

原创 分享一些牛人的心得

牛P的经验、经历、感受分享 刘加伟: 1. 做为技术方面的大牛/专家,一路走来,你最大的感悟和收获是什么? 只有努力, 并且相信自己, 你才能获得一点一点技术上的成绩. 2. 因为做技术的平时都喜欢熬夜、加班,在家庭和工作之间时间你是如何分配的?毕业前四时候, 我几乎是全身心的投入技术的学习中, 通过不断

2009-11-30 15:32:00 10522 4

原创 架构师的那些事儿

 架构师特质:能够帮助团队的同事解决问题,参与项目和产品设计对于公司的产品和项目发展方向有清晰的认知常常思考企业产品和项目的方向对公司产生的价值跟业务人员有良好的沟通,善于发掘需求具备很广的知识面,不一定要很深入大局观、开放心态和善于沟通复杂问题简单化的抽象能力架构师分类:基础平台架构师业务架构师数据架构师架构师的

2009-11-29 20:39:00 3925

原创 解析spring schedule

Spring在schedule这块支持JDK Timer、concurrent、quartz三种,这三种任务调度方案在实现机制和调用方法上都不同,但spring通过对其包装,使得基于spring能用统一的配置和编码风格来使用这三种schedule方案。总得来说这三种schedule都是基于scheduler->trigger->job的基本流程,因此spring通过TimerFactoryBe

2009-11-29 14:18:00 20885 2

原创 淘宝性能测试要点

 每台服务器每秒平均PV量= ( (80%*总PV)/(24*60*60*(9/24)))/服务器数量,即每台服务器每秒平均PV量=2.14*(总PV)/* (24*60*60) /服务器数量最高峰的pv量是1.29倍的平均pv值性能测试策略1.模拟生产线真实的硬件环境。2.服务器置于同一机房,最大限度避免网络问题。3.以PV为切入点,通过模型将其转

2009-11-29 10:49:00 6338

原创 从上至下的学习计划

不可避免地从前端业务开发转向了后端平台建设,方向的变化也对自己提出了新的要求,以前想得最多的是如何满足客户的需求,对技术本身的思考不多,以后则是如何满足前端业务部门的共性需求,对技术的要求是不言而喻的。而技术方面,自己最缺乏的是对底层技术的剖析,大部分的工作都是建立在很高层的技术层面,只需要关注业务逻辑,而对最本质的计算机原理一知半解,因此,为了应付角色的转变,我计划从上至下深入下去,层层剖析,把

2009-11-28 09:52:00 3984 1

原创 结构化思维

原本以为像老刀这样的高管对基本技术细节应该不关心,也应该丢得差不多了,结果却恰恰相反,在晚上的闲聊中,他尽然能把操作系统、网络、数据结构等基础课程从头到尾说得清清楚楚,简直让我这个刚从校园出来的学生惭愧得无地自容。分析下来,他能把这些技术细节“记”得这么牢,是因为他抓住了这些基础知识的精髓,在学习和实际工作中用结构化思维来提炼这些知识点,抓住了这些知识点的内在联系,使得学习不再是了解其表面的知

2009-11-02 22:17:00 6181

原创 一次架构设计的摸索

最近部门安排我参与一个后台计费系统的项目,作为架构设计人员,这一两周的主要工作就是推演PD的UC和相关的架构设计,一个阶段的工作下来有了些心得。这种非底层技术性项目的架构设计最关键的是业务架构设计,对业务的把握是所有架构因素中最重要的因素。项目最开始我把精力放在了如何用些花哨的模式搭建可扩展性强的框架,可后来逐渐发现这些不是大家最需要的,大家最需要的是通过技术实现的角度把业务上的各种需求整

2009-11-02 21:06:00 3485 1

原创 不同差异程度商品的电子商务策略

商品的差异程度不同将直接关系到消费者在电子商务中的消费体验,也直接关系到电子商务的经营策略,商品按差异程度大致可分为以下四类:标准化商品。如石油、纸夹、钉子准标准化商品。书、CD、玩具感知性商品。如时装、住房待鉴别的感知性商品。如艺术品、二手商品对于这类商品的电子商务策略是不同的:1)标准化商品低成本策略:利用规模经济的优势利用技术降低成本达到有

2009-09-28 10:23:00 2462

转载 案例研究:“大淘宝战略”规划阶段分析

摘要:互联网营销,这个本身就模糊不清的概念眼下正在愈来愈成为一个热门。金融危机之下,以前单纯做外贸的诸多制造商也开始藉由互联网来拓展他们的国内市场。B2C的迅速崛起,阿里巴巴国内交易产品以及百度付费搜索产品的热销,也无一不显示出此种端倪。同时,国内电子商务的标志性公司阿里巴巴集团旗下的淘宝网,也推出被称之为“大淘宝”的新战略,开始试水线下销售。传统业已被打破,一方面,淘宝积极拓

2009-09-27 16:50:00 4377

转载 移动电子商务的盛宴

   上上周,9月12日,受《通信产业报》邀请到杭州市主持《第十二届中国国际电子商务大会杭州分会》,大会主题是“3G环境下的移动电子商务”。从头到尾主持下来,和移动电子商务的业界精英们思想碰撞,十分畅快!   杭州市蔡奇市长对电子商务十分重视,亲临会场发言,分会也邀请到了中国电子商务协会宋玲理事长致词。杭州市信息办主任缪承潮主任在会上发布了《2009年杭州互联网经济发展报告》,从报

2009-09-27 14:06:00 2452

原创 程序员如何提高工作效率

程序员被誉为一群智商很高的人,是一群帮助其他人提高效率的人,局外人会估计程序员一定是很聪明地、很高效地工作,可事实上却不是如此。周围很多人,也包括我自己,总是做一些重复性的工作,很机械,很低效地工作,前段时间读了经典书籍《卓有成效的程序员》,发现工作确实存在很多提高效率的改进点,只要自己花一点时间,花一点心思,用一点技术,很能出出其不意的效果。结合这本书,加上自己和他人的低效工作,总结了以下几个可

2009-09-20 16:11:00 10099 4

Oracle 9i 10g编程艺术:深入数据库体系结构

Oracle 9i 10g编程艺术:深入数据库体系结构

2011-01-17

Pro HTML5 Programming

Pro HTML5 Programming

2011-01-17

Comet And Reverse Ajax

Comet And Reverse Ajax

2011-01-17

Lucene 3.0 原理与代码分析完整版

Lucene 3.0 原理与代码分析完整版

2011-01-17

Hibernate In Action(英文)

Hibernate In Action(英文).

2010-02-04

Java Development with Ant

Java Development with Ant

2010-02-04

OReilly - Creating Effective JavaHelp

OReilly - Creating Effective JavaHelp

2010-02-04

AJAX In Action

AJAX In Action,AJAX In Action

2010-02-04

Database Programming with JDBC and JAVA

Database Programming with JDBC and JAVA

2010-02-04

Data Structures and Algorithms In Java

Data Structures and Algorithms In Java

2010-02-04

Advanced Java Networking

Advanced Java Networking

2010-02-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除