- 博客(21)
- 收藏
- 关注
原创 dubbo源码阅读笔记--暴露服务时序
本文许多内容来源于http://dubbo.io/Developer+Guide-zh.htm#DeveloperGuide-zh-%E8%B0%83%E7%94%A8%E9%93%BE,感谢作者的分享。dubbo的整体架构图中包含了很多内容,这里只分析服务暴露部分。针对服务暴露,对上面的图做了些简化时序图分成六个阶段,下面分别列出每个阶段的调用堆栈。1
2015-04-29 20:11:51 1411
原创 dubbo源码阅读笔记--dubbo服务启动
启动位置com.alibaba.dubbo.container.Main.main(String[])启动前初始化容器loaderprivate static final ExtensionLoader loader = ExtensionLoader.getExtensionLoader(Container.class);读启动配置在配置文件中读key为"dubb
2015-04-23 11:28:29 1779
原创 dubbo源码阅读笔记--动态扩展
dubbo的dubbo-common工程中大量使用了动态扩展。序列化由基类/dubbo-common/src/main/java/com/alibaba/dubbo/common/serialize/Serialization.java可以扩展成:dubbo,fst,hessian,java,json,kryo日志由基类/dubbo-common/src/main/java/com/ali
2015-04-23 10:46:31 1211
转载 mysql乐观锁总结和实践
转载自:http://chenzhou123520.iteye.com/blog/1863407上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大
2015-03-24 10:18:46 494
转载 mysql悲观锁总结和实践
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制
2015-03-24 10:08:53 295
转载 redis配置文件redis.conf详细说明
redis配置文件redis.conf详细说明# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.#Redis默认不是以守护进程的方式运行,
2015-03-11 11:59:45 402
原创 多商家电商商品模型
最近几天在设计多商家电商商品模型,先后设计了几种方案。每个方案都有各自的特点,没有最好的方案,只有最适合的方案。这里把各种方案进行简单的说明。
2015-03-06 07:44:39 3144
原创 在windows server 2008 R2 x64 上使用windows media services 2008
1. 下载安装windows media services 2008下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=20424,下载后按提示安装即可。网上有人使用的是http://www.microsoft.com/en-us/download/details.aspx?id=12442这个是针对w
2013-11-25 10:40:35 3902
原创 Tomcat设计模式-门面模式(facade)
门面模式有如下作用:为一个复杂子系统提供一个简单接口提高子系统的独立性在层次化结构中,可以使用Facade模式定义系统中每一层的入口。 Tomcat的request使用了面门模式。利用门面模式把request的接口进行进一步封装。在servlet中使用的request实际上是requestFacade。org.apache.catalina.connector.Request
2013-10-31 11:08:45 2182 1
原创 Tomcat设计模式-责任链模式(二)pipeline valve
在tomcat中责任链模式还有一个非常典型的应用:http消息在container之间的传递。具体过程在文章Tomcat源码分析HTTP消息处理(从connector到servlet)中已经详细分析过,本文着重分析容器间管道和阀门的实现。Tomcat源码分析HTTP消息处理(从connector到servlet)中提到,消息传递过程中每个容器内都会有这样一样代码:xxxx. getPi
2013-10-30 15:32:45 3366 1
原创 Tomcat设计模式-模板方法模式
我们在编写servlet的时候,需要继承javax.servlet.http.HttpServlet然后根据需要重写父类的doGet,doPost, doPut, doDelete等等。然而doGet, doPost, doPut, doDelete这些方法是如何被调用的呢?这里Tomcat运用了模板方法模式。父类javax.servlet.http.HttpServlet不仅实现了doGet
2013-10-29 14:22:53 1193
原创 Tomcat源码分析 filter 责任链模式
之前在 TOMCAT源码分析 http消息解析 中分析到在调用servlet之前会调用voidorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ServletRequestrequest, ServletResponse response)这个函数分成两部分,前半部分采用责任链模式调用filter,后
2013-10-29 10:22:54 1989
转载 《JAVA与模式》之责任链模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配
2013-10-29 10:07:51 989
转载 UML类图关系(引用)
在Visio里,包和类的关系是包含关系,将类拖入包的文件夹之后,关系就建立了,二元关联符号可以设置为:聚合、合成。接口:空心圆+直线(唐老鸭类实现了‘讲人话’);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成:实心四边形+实线+箭头(鸟和翅膀的关系);泛化:空心三角形+实线(动物和鸟的
2013-10-24 10:01:25 1069
原创 Tomcat源码分析 HTTP消息处理(从connector到servlet)
上一篇文章主要分析了http消息从接收到回复的过程,这篇来分析消息是如何从connector传递到container。1. Adapter初始化之前分析到在Http11Processor 的process中调用adapter.service(request,response)得到response信息。Adapter是究竟是如何设置的呢?这里要回到tomcat启动时的代码。
2013-10-23 10:39:41 1795
原创 TOMCAT源码分析 http消息解析
之前提到tomcat的http消息由SocketProcessor处理,通过init时注册的handler传给Http11ConnectionHandler::process. 之后调用Http11Processor::process,在这个函数中完成请求的整个过程。使用chrome中请求:http://127.0.0.1:8090/index.html1. 在input
2013-10-21 15:18:07 1268 1
原创 Tomcat源码分析 建立Http通信的过程
Tomcat的http通信由connector模块完成。connector启动之后初始化线程用来监听指定端口(默认是8080),每次接受到连接会通过线程池产生socket线程处理通信。整个流程很清晰,这里指列出主要的代码。主要涉及到下面几个类:Connector,Http11Protocol,JIoEndpoint,SocketWrapper,DefaultServerSocketFactor
2013-10-16 09:44:01 1142
转载 ThreadPoolExecutor使用介绍
转载《ThreadPoolExecutor使用介绍 》,分析Tomcat的connector时会用到ThreadPoolExecutor。private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(1000
2013-10-15 16:30:05 881
原创 Tomcat源码分析 启动流程分析
用了两天事件梳理Tomcat的启动过程,主要参考了文章http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/。Tomcat启动主要涉及到下面这几个类:Bootstrap,Catalina,StandardServer,StandardService,Connector,StandardEngine。整体架构如下:org
2013-10-15 15:01:49 1629
原创 windows注册表API使用
RegCreateKeyEx()RegClose() RegQueryValueExRegSetValueExRegOpenKeyExRegCreateKeyEx function新建指定注册表项,如果已经存在则打开。注册表项名称不区分大小写。LONG WINAPI RegCreateKeyEx( _In_ HKEY hKey, _In_
2013-08-20 17:01:32 1052
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人