![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 65
lovingprince
关注大型WEB系统架构的高可用性、高性能处理
展开
-
java classLoader 原则
要理类加载体系结构,就必须清楚如下几点比较基本的原则。(下面类加载器 简写为cl(classLoader))1. cl是一种父子树形结构(注:这里不是指类继承的父子关系)2. 父cl无法看到子cl加载的类3、虚拟机遵守双亲委托加载原则,即任何子cl必须首先委托父cl先加载需要的类,当父cl加载不到时再由子cl亲自加载(这是一个递归过程,即父cl如原创 2009-06-04 16:11:00 · 1328 阅读 · 0 评论 -
日常工作常用工具集
日常开发工作用到很多工具,这里将平日使用到的一部分必要的工具集子集列举一下,便于各位参考。 1. 开发编辑器:Eclipse->http://www.eclipse.org/ 插件查找地址:http://www.open-open.com 1)Easy Explorer 打开在eclipse中选定文件所在的目录 2)Implementor原创 2010-04-18 15:19:00 · 2625 阅读 · 1 评论 -
71java并发编程不得不知道的几件事
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE原创 2010-04-04 21:29:00 · 8925 阅读 · 46 评论 -
Java 远程调试设置杂记
Java 远程调试采用的JDWP协议来实现,要想远程调试,那么需要在启动java程序之前加上一段支持JDWP协议的参数才行原创 2010-08-17 13:50:00 · 1812 阅读 · 1 评论 -
SNA (Share Nothing Architecture) Session 解剖
集群中部署的web应用系统往往会强调无状态性,之所以这么要求,一方面是当然是为了便于集群扩展,但是对于有session要求的系统来说,无状态确实没法做到,既然没法做到,那么对于集群部署的应用来说,就要考虑到状态的保存和同步问题,因此衍生了 session状态复制 以及 striky session 两种技术,第一种是通过服务器集群中相互复制session状态来保障同步,优点是简单,缺点也明显工作量大,性能低下(大于5台),第二种方式呢,就是把同一个用户的session绑定在一个服务器上,避免了复制原创 2010-09-14 14:40:00 · 5658 阅读 · 2 评论 -
默认+个性化灵活配置你的系统
1、系统中的默认值配置一般设置为通用公用测试环境配置,特别是公司内有自己的公用测试环境的情况下,默认值按照公用测试环境值作为默认值,这样,每个人直接checkout代码不需要做本地配置,或者少许配置即可在测试环境下运行。注:默认值一定不要设置为线上的配置,否则可能不小心(比如压力测试时)把线上系统给搞挂了。 2、本地个人性配置修改本地配置文件,不要去动系统默认值。 3、线上环境配置打包需要采用个性化方式重新覆盖默认值,好处在于对于线上数据隔离要求较高的配置数据(例如密码原创 2010-09-22 18:09:00 · 2254 阅读 · 0 评论 -
Jetty 服务器架构分析(上)
Jetty 服务器实现架构分析原创 2011-02-23 15:31:00 · 18247 阅读 · 5 评论 -
Jetty 服务器架构分析(中)
Jetty 服务器架构分析-服务器启动过程原创 2011-02-23 16:08:00 · 6829 阅读 · 5 评论 -
Jetty 服务器架构分析(下)
Jetty服务器架构分析-请求处理原创 2011-02-23 16:16:00 · 7729 阅读 · 8 评论 -
UML类对象基本关系解析
我们平常要使用UML工具画类之间的关系,因此经常会见到依赖、关联、泛化、继承、实现、聚合、组合等概念,那么他们是怎么样的,区别在哪里呢?我在这里整理一下: 依赖 依赖是指类A要完成一定的功能,必须要类B的帮助,例如使用到类B的方法,而类A和类B之间并没有比较亲密的联系,只是要利用B而已,他们之间的关系是偶然的,临时性的,比较脆弱,体现在代码形式上:类B只需作为类A的方原创 2010-04-17 10:52:00 · 5612 阅读 · 2 评论 -
一个常见问题的良好代码组织方式
一个好的程序员不仅仅编写的代码要能够正确的运行,而且要使编写的代码具有足够的可读性,不胡扯其他虚的,这里针对一个常见的问题提出一个比较良好的代码组织方式。 还是先看例子: public class App { public static void main(String[] args) { /** * 按照顺序执行,任何一个操作执原创 2010-04-16 13:06:00 · 1960 阅读 · 0 评论 -
站在使用者的角度设计应用服务接口
界面是系统和终端用户的交互接口,界面的美观与否,使用流程通畅与否,错误提示友好与否等等都直接影响到用户的体验,一个体验不好的系统相信不会有用户青睐的。同理,系统之间进行交互,特别是不同的业务主体的业务系统之间进行交互,服务提供方和使用方就扮演了一个提供者和用户的角色。我看到经常有开发人员在处理外部接口时抓狂,骂别人接口写得烂,写得非常不好用,骂过了别人,那么自己写的接口呢?可能也被另原创 2009-12-10 17:47:00 · 2242 阅读 · 0 评论 -
Java ClassLoader深入讲解
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloaderbootstrapclassloader-引导(转载 2009-06-03 12:50:00 · 43319 阅读 · 12 评论 -
Java类装载体系中的隔离性
正文Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯这样的错误而觉得不自然,但是在如果出现了ClassNotFoundException后异常后一脸的茫然,那我想你该了解一下java的类装载的体制了,同时为了进行下面的关于类装载器之间的转载 2009-06-03 16:26:00 · 2652 阅读 · 0 评论 -
注意设置httpclient连接数
在使用Httpclient的过程中,线上的酒店出现过一个问题,就是当访问量增大的时候,会发现本地的连接等待时间急剧增加,例如从400ms增加到78000ms,之前一直以为是航信系统问题,后面经过检查才发现,原来是本地httpclient设置时,最大连接数采用了默认设置的原因,而默认的最大连接数只有2个,所以当有大量连接需要建立时,大多数连接只有等待。后面将连接数设置修改成32个之后,这原创 2009-09-03 18:39:00 · 8920 阅读 · 0 评论 -
Ibatis缓存select字段名引起的问题
开发中遇到一个问题,网上有人描述问题,但是没有找到答案,自己看了ibatis源码才明白过来执行SQL:SELECT count( distinct o.id) FROM et_orders o tickets ticket .................这里省略 抛出如下异常:com.ta原创 2009-07-02 20:38:00 · 3506 阅读 · 0 评论 -
java 类加载器体系结构
原创 2009-07-02 20:42:00 · 5794 阅读 · 1 评论 -
Jboss应用使用jconsole进行性能监测
系统应用一般我们要做性能监控,不用其他的开源工具,其实JDK本身就自带了一个非常好用的东东。 jconsole是JDK5开始自带的基于GUI的JVM监控工具,可以监控内存、线程、jvm堆栈、执行GC等,不仅可以对本机JVM进行监控,也可用于远程主机的JVM。 废话少说,步入正题,下面就来说一下在JBOSS运行环境下如何使用jconsole进行监控。原创 2009-09-30 17:03:00 · 2186 阅读 · 0 评论 -
Json还可以这样用
日常项目中经常有这样的需求,即需要几个紧密相关的内容存储起来,例如,xxx省xxx市xxx区等等。 例如下图: 这些紧密相关的内容可能会经常增加或者减少某项内容,在数据库应用中,当然可以设计几个字段来存储或者设计一个专门的key-value表来存储这些可变内容,但是对于这类不会直接用条件进行检索的紧密关联的内容来讲,保存在一个字段traffic原创 2009-10-29 18:18:00 · 1905 阅读 · 0 评论 -
四步让 maven为您工作起来
maven 让您的构建不是一般的爽,下面就看看怎么样让maven工作起来。 第一步,做好安装maven前的准备工作,首先安装JDK5或者jdk6.这一步比较简单,学java的同学应该都会,不罗嗦了,检验JDK是否安装好,可以输入如下命令后回车(windows系统) 第二步,下载maven并进行安装,maven下载地址http://maven.apache.org/down原创 2009-12-09 17:48:00 · 11368 阅读 · 11 评论 -
IO Models
摘选自: Addison Wesley - UNIX.Network.Programming.Volume.1.3rd.Ed.The.Sockets.Networking.API-LiB ,喜欢的朋友可以去找找这本书,很经典的。原创 2011-05-17 09:08:00 · 2675 阅读 · 3 评论 -
Jetty 类加载器体系结构
jetty 类加载器体系结构介绍原创 2011-04-10 23:06:00 · 7713 阅读 · 5 评论 -
远程断点调试不需要跟时间赛跑
大多数时候远程调试采用的方法是启动web服务器后,再在IDE工具中开启debug功能,这类设置debug上篇有一个描述,不过这个方法有一个缺点:如果应用本身启动比较快,在你启动web服务器后,需要迅速切换到IDE中打开debug,如果稍有迟疑,可能代码已经执行过去了,又的重启服务器重来一遍,非常之累,这里有一个现成的方法来解决这个问题原创 2011-04-19 17:37:00 · 2334 阅读 · 1 评论 -
Zookeeper 3.3.3 服务器配置项详细解释
最小配置 clientPort 监听客户端连接的端口 dataDir 内存数据库快照存放地址,如果没有指定事务日志存放地址(dataLogDir),默认也是存放在这个路径下,建议两个地址分开存放到不同的设备上。 tickTime 心跳基本时间单位,毫秒级,ZK基本上所有的时间都是这个时间的整数倍。高级配置(可选,有的需要直接通过系统属性进行设置) dataL原创 2011-10-08 21:17:48 · 9089 阅读 · 0 评论 -
Spring 2.5之 @ModelAtrribute
很久没来了,来mark一个,最近用spring的MVC,碰到ModelAtrribute这个标注,感觉相对其他标注比较难于理解一点,看了一遍源代码,梳理一下,做下记录。ModelAtrribute标注本身很简单,看下他的定义:/** * Annotation that binds a method parameter or method return value * to a na原创 2012-06-06 20:57:56 · 3491 阅读 · 0 评论 -
JNDI和在Jetty中的运用
转载请注明出处 http://blog.csdn.net/lovingprince 第一部分 引子我们应用想用统一的方式去查找我们想要的服务,通过格式化的名称例如:jdbc:comp/testa去获取jdbc的服务,Ldap:comp/testa去获取ldap服务,每种服务如何去查找我们并不关心,服务查找实现方式变更了,我应用程序也不需要改变。看下要求:1、原创 2011-04-26 17:00:00 · 14352 阅读 · 5 评论 -
JAVA正则表达式高级用法(分组与捕获)
正则表达式在字符串处理中经常使用,关于正则简单的用法相信有一点程序基础的人都懂得一些,这里就不介绍简单基础了。这里主要讲解一下在JAVA中实现了的正则的高级用法-分组与捕获。 对于要重复单个字符,非常简单,直接在字符后卖弄加上限定符即可,例如 a+ 表示匹配1个或一个以上的a,a?表示匹配0个或1个a。这些限定符如下所示: X?X,一次或一次也没有X*原创 2008-08-06 10:06:00 · 26323 阅读 · 20 评论 -
DBUnit 2.4.9+ 支持数据库唯一键扩展
由于DBUnit在做refresh或者delete操作时是根据数据库的connection获取到meta信息,然后通过meta信息来确定主键列,最后根据这些列构造where条件,进行更新或者删除处理,但是如果表没有定义主键,只定义了唯一键,DBUnit无法处理,而目前我所遇到的就有这种情况,所以我对DBUnit进行了扩展,支持oracle和mysql的唯一键处理,但是要注意唯一键的键值如果有nul原创 2012-10-17 14:39:02 · 2482 阅读 · 0 评论 -
注意java 字符串split的坑哦
System.out.println(":ab:cd:ef::".split(":").length);//末尾分隔符全部忽略 System.out.println(":ab:cd:ef::".split(":",-1).length);//不忽略任何一个分隔符 System.out.println(StringUtils.split(":ab:cd:ef::",":").length);原创 2012-11-05 09:49:05 · 3472 阅读 · 0 评论 -
文本文件逻辑分段方案
为了对一个大的文本文件进行并行解析处理,需要按照固定的大小或者行数的方式对文件进行拆分,这样可以加快处理速度,可以的分块方案如下:1、 按照特定字节大小将文件分割为若干逻辑块,如果小于分块大小的合并到其中一个分块中,以上例子记录了分块大小为100字节的例子,最后一个分块大小为101字节2、 每个分块需要记录3、 可能会产生的预知结果是某些行被割裂在不同的分块中原创 2013-02-19 16:01:09 · 3499 阅读 · 0 评论 -
ZK 客户端事件-状态对应关系图
KeeperState.SyncConnected 时事件类型为EventType.None发生在客户端收到ConnectResponse,与客户端协调好session time的时间后,会触发一个KeeperState.SyncConnected 的None事件类型。原创 2011-10-18 19:46:30 · 4491 阅读 · 0 评论 -
ZK session客户端过期(Expired)过程
一般情况下,zk客户端与服务端建立连接后,会在2/3*sessionTime*1/2的时候发送一个心跳消息到服务端,保持会话更新。但是可能在某个时候网络中断可能导致客户端无法连接上服务端,此时客户端会不停的依次重试各个服务器,一直到连接上某个服务器为止。如果在未连接上这段时间内,原创 2011-10-18 19:19:41 · 22813 阅读 · 4 评论 -
Zookeeper 3.3.3 启动过程
不管是leader,还是Follower 还是Observer,QuorumPeerMain启动时,会通过QuorumPeer.start()方法启动监听客户端请求的端口,一旦有客户端请求来到,会建立连接并等待客户端发送ConnectRequest请求,如果客户端此时发来Conn原创 2011-10-07 10:11:10 · 4312 阅读 · 1 评论 -
从劫匪的行动来看同步、异步、阻塞、非阻塞
从劫匪的行动来看同步、异步、阻塞、非阻塞原创 2011-05-03 15:14:00 · 2390 阅读 · 3 评论 -
关于Jboss/Tomcat/Jetty的JNDI定义123
貌似有段时间没来这里忽悠了,今天抽空接着忽悠下这三个服务器配置JNDI时的一些异同点并提点自己的建议。Jboss 4 Jboss中配置JNDI最常见的就是在配置数据源的时候,在server/default/deploy目录下方一个xxx-ds.xml文件,内容如下: jdbc/DataSource j原创 2011-06-30 18:43:00 · 5993 阅读 · 1 评论 -
Java类冲突、包冲突maven插件瞎搞
又碰到java.lang.NoSuchMethodException,有木有?明明感觉有这个方法啊?有木有?找了半天才发现引用了两个不同版本的jar包,有木有?有时候包并不是a-2.5.jar,a-1.5.jar这种很简单的版本关系,有可能包的名称互不相干,有原创 2011-07-04 21:29:07 · 4196 阅读 · 1 评论 -
Java 6 JVM参数选项大全(中文版)
本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Options 编写的译文。主要介绍JVM中的非稳态选项及其使用说明。 为了让读者明白每个选项的含义,作者在原文基础上补充了大量的资料。希望这份文档,对正在研究JVM参数的朋友有帮助! 另转载 2011-07-10 13:24:08 · 1805 阅读 · 1 评论 -
JDK7 问世
JDK7出来了,不过期待已久的闭包仍然没有,太不给力了,其中给了几个语法糖,字符串支持switch,异常处理,资源自动使用try释放。最有用的还是NIO2,就是传说中的AIO,等几天YY一下。更新地址:http://www.oracle.com/technet原创 2011-08-01 10:56:37 · 1910 阅读 · 0 评论 -
Zookeeper 3.3.3 Transaction Logs&Snapshot 序列化
Zookeeper Server持久化两类数据,Transaction以及Snapshot,logDir存储transaction命令,dataDir存储snap快照,其下子目录名称以version-2命名,子目录内部文件是分别以log.zxid和snapshot. lastPr原创 2011-09-23 14:48:42 · 4878 阅读 · 0 评论 -
Zookeeper 3.3.3消息序列化格式解析
Zookeeper 客户端使用Packet来管理消息,. Packet管理 请求包头(RequestHeader)和请求包体(Record的不同实现,类似于ExistsRequest在调用zookeeper.exists时发送),应答包头(ReplyHeader)和应答包体(Re原创 2011-09-17 01:37:33 · 3943 阅读 · 0 评论