本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- 龙儿筝
- arpenker
- tanling8334
- kaizi1992
- gaojingsong
- xpenxpen
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- Xeden
- zhanjia
- hanbaohong
- java-007
- 喧嚣求静
- kingwell.leng
- mwhgJava
- lich0079
最新文章列表
zookeeper3.3.3源码分析(二)FastLeader选举算法
如何在zookeeper集群中选举出一个leader,zookeeper使用了三种算法,具体使用哪种算法,在配置文件中是可以配置的,对应的配置项是”electionAlg”,其中1对应的是LeaderElection算法,2对应的是AuthFastLeaderElection算法,3对应的是FastLeaderElection算法.默认使用FastLeaderElection算法.其他两种算法我 ...
spark源码分析--Master和worker建立连接
原创,转载请注明出处 http://baishuo491.iteye.com/blog/1990242。作者邮箱 vc_java@hotmail.com
Spark的master启动后,等待work通过spark://master'ip:7077的url去连接Master.
...
Lucene4.3进阶开发之初入仙界(一)
转载请务必注明,原创地址,谢谢配合!
http://qindongliang1922.iteye.com/blog/1980262
Lucene在最近的几个月里已经频繁更新了好几个版本了,越是更新的频繁,就越证明一件事,这个东西越来越流行,越来越火,就在散仙写此篇文章时候,Lucene官方已经更新到4.6的版本了,在此,散仙,不得不力赞一下开源界的力量。
好了,言归正传,散仙今天就从源码的角度 ...
Hashtable和HashMap源码分析
Hashtable和HashMap源码分析
JDK中自带的Hashtable和HashMap是数据结构中哈希表的实现。除了这两个,还有一个HashSet的实现,但是HashSet基本是基于HashMap实现的,因此在这里我们只讨论Hashtable和HashMap的实现细节。
首先列出经过源码分析,得出的关于Hashtable和HashMap之间的异同点如下 ...
tomcat源码分析
1.tomcat 启动类 org.apache.catalina.startup.Bootstrap start
public void init() throws Exception {
setCatalinaHome();//设置启动路径
setCatalinaBase();//设置启动路径
initClassLoaders();//
Thread.currentThread ...
Tomcat7自动加载类及检测文件变动原理
在一般的web应用开发里通常会使用开发工具(如Eclipse、IntelJ)集成tomcat,这样可以将web工程项目直接发布到tomcat中,然后一键启动。经常遇到的一种情况是直接修改一个类的源文件,此时开发工具会直接将编译后的class文件发布到tomcat的web工程里,但如果tomcat没有配置应用的自动加载功能的话,当前JVM中运行的class还是源文件修改之前编译好的class文件。 ...
Tomcat7中web应用加载原理(二)web.xml解析
前一篇文章讲了org.apache.catalina.startup.HostConfig的lifecycleEvent方法中所做的事情。最后看到在Tomcat启动时或启动后(后台线程定时扫描)会调用HostConfig类 ...
netty4源码分析-connect
本文为原创,转载请注明出处
netty4源码分析-connect
客户端向服务端发起connect请求由以下代码触发:
ChannelFuture f = b.connect(host, port).sync();
调用Bootstrap的connect方法:
//Bootstrap
public ChannelFuture connect(String inetHos ...
Tomcat7中一次请求处理的前世今生(四)Tomcat7阀机制原理
通过前面的三篇文章看到了一次客户端连接在Tomcat内部被转换成了请求对象(org.apache.catalina.connector.Request类的实例),并在该请求对象内部将与本次请求相关的Host、Context、Wrapper对象的引用。本文主要分析该请求对象在容器内部流转的经过。
再来看一下Tomcat7内部的组件结构图:
其实这张图已经给出了答案,在Connector接收到一 ...
Tomcat7中一次请求处理的前世今生(三)请求与容器中具体组件的匹配
前一篇文章分析到了org.apache.coyote.http11.AbstractHttp11Processor类process方法,以解析请求头的getInputBuffer().parseRequestLine方法调用为例,看到如何从Socket的IO流中取出字节流数据,根据Http协议将字节流组装到Tomcat内部的org.apache.coyote.Request对象的相关属性中。
...
Tomcat7中一次请求处理的前世今生(二)Socket连接转换成内部请求对象
先抛开之前所看到的Tomcat源码不谈,Tomcat作为一个用Java实现的Web服务器,如果让你来实现,那么从何入手?
这里首先需要厘清的是Web服务器的概念,谷歌了一下,发现这条解释还算靠谱点,【在网络环境下可以向发出请求的浏览器提供文档的程序】。这里面重点有两条,1.网络环境下,2.能够给出响应。用Java写过网络通信程序的都知道,这里必然会用到Socket编程。我们自己要实现的服务器程 ...
Tomcat7中一次请求处理的前世今生(一)处理线程的产生
在默认的配置下Tomcat启动好之后会看到后台上总共有6个线程在运行。其中1个用户线程,剩下5个为守护线程(如下图所示)。
如果你对用户线程、守护线程等概念不熟悉,请参看前一篇文章——Tomcat7服务器关闭原理。
这里重点关注以http-bio-8080开头的两个守护线程(即http-bio-8080-Acceptor-0和http-bio-8080-AsyncTimeout),因为这是我 ...
netty4源码分析-bind
本文为原创,转载请注明出处
netty4源码分析-bind
在前一篇文章中分析了监听套接字ServerSocketChannel的创建过程,本文接着分析绑定IP和端口的过程。
回到之前未分析完的doBind逻辑,前一篇文章已分析到dobind方法中initAndRegister方法,该方法最终触发了对regPromise 的listener的回调,Listener将bind任务加到bo ...
Tomcat7启动分析(五)Lifecycle机制和实现原理
在上篇文章分析Tomcat7的各组件的init、start方法时经常会看到有一个setStateInternal方法的调用,在查看LifecycleBase类及其它各组件的源码时会在多处看到这个方法的调用,这篇文章就来说说这方法,以及与这个方法相关的Tomcat的Lifecycle机制和实现原理。
上篇文章里谈到Tomcat7的各组件的父类LifecycleBase类,该类实现了接口or ...