source
《jetty》jetty源码路径:http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/refs/tagsJetty的eclipse插件 :http://run-jetty-run.googlecode.com/svn/trunk/updatesite/插件使用方法:http://code.google.com/p/run-jetty-run/wiki/GettingStarted《google java library》guava project:http://code.google.com/p/guava-libraries/guava google java库参考:http://code.google.com/p/guava-libraries/wikiguava api javadoc:http://docs.guava-libraries.googlecode.com/git-history/v12.0/javadoc/index.html《sed》遍历
mina2源码解析
mina2源码解析http://wenku.baidu.com/view/fdbc5d65783e0912a2162a92.htmlmina projecthttp://mina.apache.org/downloads.htmlmina apihttp://www.osctools.net/apidocs/apidoc?api=mina[@more@]
里面推荐的基本书比较好
http://blog.csdn.net/micky0903/article/details/4792449[@more@]
VISUALIZATION ALGORITHMS
http://www.cs.usfca.edu/~galles/visualization/Algorithms.html[@more@]
TEST
ECEnable=TRUE;GROUPSIZE=3;NUMPARITY=1 package testlock;import java.util.HashMap;import java.util.Map;public class MainTest { private static final String EC_DOMAIN_SEPARATOR = ";"; private static final String EC_KV_SEPARATOR = "="; private static final String ECENABLE = "ECEnable"; private static final String GROUPSIZE = "GROUPSIZE"; private static final String NUMPARITY = "NUMPARITY"; private static final String source = "ECEnable=TRUE;G
《架构之美》阅读笔记
什么是架构设计? 架构:建造的艺术或科学。同时考虑到美学因素和实用因素,是洞见系统内在结构、规律、原则和逻辑的过程。为什么需要架构设计?架构不良的设计无品质上的考虑,可维护性极差,运维成本高。良好的架构有助于功能的增删改,任何一段代码,放在架构的哪一层,都是由架构设计好的。任何一点变更,都要遵循自顶向下的原则,先考虑到架构,再考虑到底层代码,而不是一上来就改代码,加代码。谁来进行架构设计?虽然大部分程序开发人员也隐含行使了架构师的角色与职责,但架构不能这样以一种自动而隐晦的方式存在,应该适时地有意
关于jetty连接关闭问题
传统socket模式都是一个connection一个线程,NIO可以通过事件机制再触发新线程,使得线程和请求可以分离,这样, Jetty就是利用NIO这个机制,保持住请求request对象,释放原来支持该请求的线程,让线程返回线程池,这样,如果业务处理有结果,Jetty就向客户端发出响应,否则一直保持直至timeout失效。 http://daizuan.iteye.com/blog/1114372 http://blog.csdn.net/zldeng19840111/article/details/6763502 http://stackoverflow.com/search?page=3&tab=relevance&q=jetty%20close%20connector 超时关闭连接(调用C
geronimo启动问题
Geronimo Problem : Chunk stream does not exist at page: 0 (ActiveMQ)As a solution delete the ActiveMQ scheduler Remove the folder scheduler located in binactivemq-dataDefaultActiveMQBrokerscheduler Restart Apache Geronimo #geronimo.bat jpda start[@more@]
The Part-Time Parliament(Paxos算法中文翻译)
http://wenku.baidu.com/view/87276e1dfad6195f312ba6d7.html?from=rec&pos=0&weight=15&lastweight=7&count=5[@more@]
OPENLDAP 命令
运行环境slapd.conf配置文件 slapd.conf 中使用了相对路径,这在大多数情况下是正确的, 你也可以使用绝对路径。注册表中的参数注意:你只需要让注册表中的参数 ConfigFile 指定配置文件 slapd.conf 的位置即可。注册表中的参数会覆盖配置文件中的参数!说明:一般无需配置参数 DebugLevel (它覆盖配置文件 slapd.conf 的参数 loglevel)。如果不需要修改端口,或者想只监听限定的 IP 地址,那么也不必配置参数 Urls。参数 ConfigFile 指定了配置文件 slapd.conf 的位置,下面的例子用的是相对于 slapd.exe 的路径,你也可以使用绝对路径。
openldap
查看openldap进程id:tasklist |findstr slapd.exe上步获取到的进程号为:6632获取openldap使用的端口,以便连接ldap使用netstat -ano |findstr 6632 生成sercret对应的md5值:slappasswd -h {md5} -s secret可以根据对象区分名(distinguished name,DN)BDB数据库将其更改写入事务日志中,以确保发生失败时的可靠性;并且还让在内存中的数据在磁盘写时保存。将所有内存数据转出到磁盘上并写出事务日志的操作称为检查点。openldap性能优化:checkpoint命令告诉slapd写出数据的频率,根据自上一检查点以来存储的更改字节数和分钟数计量如:在
Protobuf笔记
《Protobuf笔记》Google Protocol Buffer 是一个平台无关、语言无关的结构化数据的序列化与反序列化工具。使用方式:1) define proto files AddressBook.proto2) Invoke protoc to build AddressBookProtos.java:$ protoc --java_out=src/main/java -I../src ../src/google/protobuf/AddressBook.protoeg. protoc --proto_path=. --java_out=. mytest/AddressBook.proto3) Compile the code in src/main/java using whatever means you prefer.4) Install the classes wherever you prefer.proto文件demo:==============================
关于流量控制
关于流量控制:流量控制:流量控制技术可以分成两个大的流派,一种是结合协议本身的设计机制,巧妙利用协议本身提供的一些机制,实现流量控制;一种是采取缓冲、队列控制的办法,强制性的实现流量控制。对于TCP/IP协议来说,TCP是面向连接的协议,提供了很多反馈控制的机制,能够端到端的控制业务的速率。而UDP只是一种尽力而为的协议,没有端到端的反馈控制能力,因此,结合协议进行流量控制将局限于TCP。对于UDP只能采取缓冲、队列控制进行流量控制。基于队列调度算法的流量控制:队列调度算法是通过将入端口数据进行排队,赋予每一个队
BlockingQueue使用要点
/* 使用BlockingQueue的关键技术点如下: 1.BlockingQueue定义的常用方法如下: 1)add(anObject):把anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则招聘异常 2)offer(anObject):表示如果可能的话,将anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则返回false. 3)put(anObject):把anObject加到BlockingQueue里,如果BlockQueue没有空间,则调用此方法的线程被阻断直到BlockingQueue里面有空间再继续. 4)poll(time):取走BlockingQueue里排在首位的对象,若不
NDC vs. MDC
log4j用于存储上下文信息(context information)的两个重要的类NDC(Nested Diagnostic Context)和MDC(Mapped Diagnositc Context).NDC采用栈的机制push和pop上下文,每个进程有独立的上下文。NDC.push(message);NDC.pop();NDC.remove();MDC是线程独立的,但是一个子线程会自动获得 一个父线程MDC的copy。MDC.put(key, value); MDC.get(key); MDC.remove(key); 一般使用在context或servlet入口将线程相关的应用信息保存,在需要记录日志log信息等时将信息输出,并保证在当前线程的结束或servlet的出口使用remove()移除,防止信息泄露。如果要
同步机制比较
如下三者同步机制的比较:Semaphore ReentrantLock syncronized使用semaphore信号量进行同步控制:semaphoreacquire() 从此信号量获取一个许可,在提供一个许可前一直将线程阻塞,否则线程被中断。release() 释放一个许可,将其返回给信号量。[@more@]
java clone机制
java clone 克隆的对象同原对象一样,具体可以用如下的形式描述:x.clone() != x <克隆出来的对象同源对象是不同的对象x.clone().getClass == x.getClass() <对象具有相同的类x.clone().equals(x) <对象equals相等浅拷贝 vs. 深拷贝浅拷贝与深拷贝的主要区别是是否对对象内部的引用类型进行clone操作,即深拷贝最终产生的对象与源对象时完全独立的。在考虑clone时,primitive和不可变对象类型是可以同等考虑的,都不会影响原型。如何实现clone:1.声明实现Cloneable接口2.调用super.clone拿到一个对象,如果父类的clone实现没有
《ASPECTJ学习笔记》
《ASPECTJ学习笔记》1.AOP的几个概念:☆JoinPoint(连接点)-应用程序中某个特定的点,该点可以执行某个通知事件。 AspectJ支持的连接点: 方法 构造函数 字段 静态初始化块 方面通知执行 对象初始化之前、期间 ☆Pointcut(切点)-用于声明一组连接点,在这组连接点发生的时候调用到一定的通知 AspectJ支持的切入点: call:方法调用切入点 execution:方法执行切入点 target、this get、set args initialization、staticinitialization、preinstialization within、withincode cflow、cflowbelow &&、||、! ☆Advice(通知)-在符合特
《mockito 使用笔记》
《mockito 使用笔记》1.mock对象的创建Iterator iter = mock(Iterator.class);2.mock对象的使用when(iter.next()).thenReturn("Hello").thenReturn("World");3.mock对象方法调用校验verify(iter,time(2)).next();4.多次调用同一个方法返回不同的值when(iter.next()).thenReturn("hello").thenReturn("world");5.对返回void或exception的特殊处理//DemoMock demoMock = mock(DemoMock.class);doNothing().when(demoMock).rowDelete(any(String.class));doThrow((Exception) ret).when(demoMock).r
java annotation
http://wenku.baidu.com/view/ac644b28915f804d2b16c1a3.html[@more@]