`
agapple
  • 浏览: 1584335 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
继上一篇:  (业务层)异步并行加载技术分析和设计   目前已经在google code上新建了一个project,也在逐步的完善和加强并行加载的功能,这里记录一下ChangeLog。   相关代码: https://github.com/agapple/asyncload , 有兴趣的同学可以一起参与,目前正在公司的应用中打算实施,逐步的在完善功能和解决一些兼容性的问题。   Change 1: (HandleMode模式修改) AsyncLoadExecutor(并行加载的执行容器),修改了HandleMode模式,增加了CALLERUN,废弃了BLOCK。 Handl ...
用linux(ubuntu)已经有好几个年头了,最近重装了公司的台式机后发现左边的ctrl键一直失效,因为一直习惯了快捷键操作,ctrl+c , ctrl+v等。快捷键没得用后,着实让我很不爽。   刚开始windows虚拟机出现ctrl失效,虽然比较纠结,但一直没细查。今天无意兴起,查了下ubuntu的中文论坛,还真发现不少同胞们根我有同样的遭遇。最后在网上找到一个帖子:http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=295881&view=next,第9楼的描述刚好是我先前设置的ctrl显示鼠标位置,去掉了就ok了,小激动一 ...
背景   相信大家对velocity这一类模板语言都并不陌生,一般velocity大部分是在web应用中,替换jsp的一种选择,做为html页面的渲染。实现UED和开发人员的分离。   但在最近的一个项目中,遇到了一个比较"另类"的需求,就是我们需要抓取一个外部网站的页面内容信息,比如aleax排名。   设计   针对这样的需求,设计上需要考虑的点:   外部网站不稳定,超时时间的设置,访问的域名变化(域名换成ip等) 我们需要精确抓取外部网站的信息,外部网站页面的任意变化,都会导致抓取失败 有几个类似的需求,需要进行统一考虑 分析: 1. 外部 ...
安装mysql数据库目录 /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/home/mysql/var ##指定安装后的数据目录   mysql 启动/关闭 /usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysql/.my.cnf --user=mysql & #启动 /usr/local/mysql/bin/mysqladmin --defaults-file=/home/mysql/.my.cnf shutdown - ...
上周五和周末,工作忙里偷闲,在看java cocurrent中也顺便再温故了一下Thread.interrupt和java 5之后的LockSupport的实现。   在介绍之前,先抛几个问题。   Thread.interrupt()方法和InterruptedException异常的关系?是由interrupt触发产生了Inter ...
一直对jdk的ref使用比较模糊,早上花了点时间简单的整理了下,也帮助自己理解一下泛型的一些处理。   java中class,method,field的继承体系     java中所有对象的类型定义类Type   说明:    Type :  Type is the common superinterface for all types in the Java programming language. These include raw types, parameterized types, array types, type variables and primiti ...
   以前虽然看过一次AQS的源码实现,但在过一段时间后与同学交流时,发觉自己理解并不够深,印像太浅。需要做一个记录整理,帮助自己消化。   AQS中Node的设计:    几个点: 1. Node实现作者: "CLH" (Craig, Landin, and * Hagersten) ,有名的CLH queue 2. 是一个FIFO的链表的实现,对于队列的控制经常要做double-check。 3. Node节点通过一个int waiteStatus代表一些不同意义的状态。   SIGNAL=-1,代表是需要当前Node节点需要唤起后一个Node节点 ...

btrace记忆

上周五接近6个小时都在开会,悲剧阿。 美好的一天又这样被浪费了。   还好开会的时候自带了笔记本,闲来无聊又重新把btrace的内容重新梳理了一遍。   ps : 以前虽然看过btrace的使用,但根本是一种阅读者的态度,并没有反 ...
  目前公司中使用到了apache+jetty/jboss的架构模式,apache承担了日志记录的一个职责。   同事在做性能测试时,发现一个奇怪的现象:15个并发直接压apache,load居然达到了100多,tps只有200多。直接压后端的jboss tps可以有1000多。   1. 刚开始以为是apache keepalive的搞怪,但后来确认apache配置文件的keepalive模式已经是Off。看了下tcp状态,近1000个close_wait状态(说明是客户端主动关闭,服务端是被动关闭),ESTABLISHED也就20多个.   2. 下一步确认apache和后端的 ...
背景     最近在处理一个hessian的反序列化问题时,因为服务端使用了pojo bean中多了一个enum属性,导致客户端在反序列化时疯狂的在打印日志。警告说找不到对应的enum class,因为项目中本身是设置了log4j的根输出为一个文件 ...
继上一篇文章: HttpClient超时机制(安全问题处理:访问超大文件控制)   提到了一个需要管理所有request请求的timeout,原先文章的一种处理方式是起一个异步线程的方式,通过jdk的unsafe的await机制控制timeout。    存在的问题: 1.  创建新线程的开销不小。 2.  大量线程的调度和切换,引起不必要的context switch   和同事在沟通的过程中,提到一种新思路,就是有一个monitor线程来管理所有request的timeout。   启动一个monitor thread,是一个while true运行 每个请求创建之前 ...
工具1:jvminspect类加载跟踪   taobao仁兄写的一个,jvminspect(jvm类加载分析跟踪器),你还在为jboss log4j类冲突所苦恼吗,那就试试这一个东东把。    使用:增加jvm参数:   JAVA_OPTIONS=$JAVA_OPTIONS -javaagent:/home/ljh/soft/jvminspect/jvminspect.jar=outputfile=jvm.inspect.output,flushIntervalSecond=300 -DHtmlFlusher.enableHyperlink=false   参数说明:   ...
背景      最近一直在做项目,其中的一个功能点,主要是访问外部网站并获取页面的字符串,具体的网站url完全是由用户输入,所以存在一定的安全隐患。     从测试来看,如果给定的一部电影的url地址,链接会一直不能被关闭,直到数据流被读完,如果来个几十次这样的请求,应用估计也差不多崩溃了   说明:   项目中使用的HttpClient版本是3.0.1 测试 一般的HttpClient使用例子:    MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager(); ...
最近研究了下google protobuf协议,顺便对比了一下json,xml,java序列化相关的数据对比,从几个纬度进行对比。   别人的相关测试数据: http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking   测试纬度 序列化时间 反序列化时间 bytes大小 测试代码 准备protobuf文件   import "InnerMessage.proto"; package demo; option java_package = "com.agappl ...
背景   前段时间研究了下dbcp的一些源码,发现dbcp对common pools依赖比较严重,基本就是基于pool的扩展接口实现的。所以也就顺便看了下pools的源码。   总体结构   common pools的代码总体结构来说是比较简单的。   先上一个类图:     核心接口类: ObjectPool             对象池 ObjectPoolFactory   池的维护工厂 PoolableObjectFactory   可池化对象的维护工厂 KeyedObjectPool    基于kety的对象池 KeyedObjectPo ...
Global site tag (gtag.js) - Google Analytics