- 浏览: 1600839 次
- 性别:
- 来自: 杭州
-
最新评论
-
jsrgzhangzhiyong:
关于null值的转换还是感觉不太友好,就像 mapstruct ...
我也造了个轮子:BeanMapping(属性拷贝) -
he037:
a417930422 写道引用使用EPHEMERAL会引出一个 ...
基于zookeeper的分布式lock实现 -
seancheer:
qianshangding 写道首先节点启动后,尝试读取本地的 ...
zookeeper学习记录三(session,watcher,persit机制) -
雪夜归人:
您好,我想咨询一下,开源的canal都能支持mysql的哪些版 ...
Canal BinlogChange(mysql5.6) -
zhoudengyun:
copy 一份做记录,后续学习,请知悉
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
文章列表
背景
公司在做监控迁移过程中,使用了aop:config进行配置。 配置例子:
<aop:config>
<aop:advisor advice-ref="rpc-interceptor" pointcut-ref="rpc-pointcut"/>
</aop:config>
定义了一些advisor列表,但在实际过程中却遇到一些莫名奇妙的问题,就是原本不应该被生成代理的对象出现了jdk,cglib代理。
分析
aop:config具体的解析类为//AopNamespaceHandler.java ...
背景
以前debug jdk源码的时候,一直苦于没有源码,无法更加深入的了解一些机制。 这几天在看文章的时候,看到了两篇文章,让我眼前一亮阿
文章链接:
http://www.iteye.com/topic/869992
http://hllvm.group.iteye.com/group/topic/24553
首先下载jdk 源码,我选的是sun jdk source: http://download.java.net/jdk6/source/
这里几个代码对应关系:
sa-jdi.jar 对应于: ${jdk_source}/ho ...
背景
RednaxelaFX 写道
agapple 写道还有一个问题,就是在验证一些逃逸优化时,有些jvm参数用不了,比如-XX:printInlining,-XX:printAssembly,jdk用的是1.6.11和jdk1.6.18
-XX:+PrintInlining在product build的Sun JDK上可以是可以用,但什么也显示不出来。要在debug build(debug或者fastdebug)上才有意义。-XX:PrintAssembly的使用请参考这篇文章:JVM 反汇编动态运行代码简单来说,如果在声明那些VM参数的地方,写着是product、prod ...
背景
前段时间在看btrace源码和jdk一些源码的时候,经常会看到一些jmx的相关内容。以前对jmx基本是一片空白区,花了点时间学习记录下。
过程
jmx总体架构图:
说明:
1. Agent : javax.management.MBeanServer实现了Agent的功能,以标准的方式给出了管理系统访问 JMX 框架的接口
2. SubAgent: javax.management.MBeans实现了SubAgent的功能,以标准的方式给出了 JMX 框架访问资源的接口
MBean是Management Bean的缩写,负责将可管理资源和服 ...
背景
前段时间做了个项目,主要优化一个产品页面。整个优化过程中,针对velocity的分析过程占了比较大的比重,这里做一下整理和记录。
描述
velocity版本:
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.6.4</version>
</dependency>
优化1: 锁优化
通过velo ...
背景
上次在部门周会上抛出了一段代码:
Class SimpleCache {
private Map cache = new HashMap() ;
public Object get(String key) {
return cache.get(key);
}
public void reload(){
Map tempCache = loadFromDB();
cache = tempCache; // 位置1,引用切换
}
}
是否是一个线程安全问题的操作。看似很简单的问题,其实发现 ...
背景
前段时间一直在关注一些牛人的blog,主要的关注点在一些性能优化上,一些细小的jvm参数优化上。以前这一块一直是自己的弱项,把这段时间看的内容做一个记录。
过程
先认识一下几位大牛的http://rednaxelafx.iteye.com , http://kenwublog.com/, 貌似都是taobao中间件团队的,blog文章都写的比较不错。
JIT优化
JIT全程: (Just-in-time) , sun的一些资料文档: Just-In-Time Java Compiler , http://java.sun.com/developer/onlineTra ...
背景
自从公司应用大部分迁移到了jetty后,一些杂七杂吧的问题,陆续的冒上来。 前段时间有很多人问我使用了jetty之后,对应的jps功能无法正常使用,jinfo/jstack等等这些命令都正常。
原因分析
java进程启动后,会在$TMP(%TMP%)/hsperfdata_$username 创建一个perfData数据,用于jvmstat一些统计数据(可以看一下神人的神帖:http://rednaxelafx.iteye.com/blog/796343)。
可以做个尝试, 启动一个main函数:
public class InstrumentServer { ...
背景
前几天很悲剧,公司的oracle小型机据说是网卡驱动有问题,导致数据库整整挂了1个多小时,后来切换到了备份数据库上,可用性一下子跌倒了3个9。
在后续的某一天,凌晨3点进行了网卡升级,又从备份库重新切回主库的时,测试过程中发现dbcp的自动重连部分机器有问题。
问题描述
整个过程出现了两种错误日志:
异常1:
Caused by: java.sql.SQLException: The Network Adapter could not establish the connection
at oracle.jdbc.driver.SQLS ...
去年做的一件事情,就是将网站百来台的机器从apache 2.0+jboss4.05 升级到了 apache2.2.15 + jetty7.2.0。
今天无意中翻到了,当时还整理了一封比较详细的升级文档。
里面比较详细的记录了一些参数优化的内容:
apache的woker线程池配置参数优化
apache mod_proxy参数配置优化
jetty 参数配置
dbcp 数据源配置优化
最后还有一些升级过程中遇到的问题记录,其他的有些公司的产品介绍或者链接啥的,大家请忽略把。
文档地址: Apache2.2+jetty7.2 升级实施文档
背景
最近在实施并行加载,遇到一个问题: 重复代理,或者说是两次cglib代理。
主要是并行加载技术本身是采用了cglib+拦截的技术进行控制,所以势必会要求进行一次代理配置那
1. 如果需要代理的原始对象已经是一个cglib代理后的对象,比如性能监控,日志记录等等。
2. 其他同事在做的自动路由,按需加载都会要求进行一次cglib代理
如何平衡多次代理的问题,就冒出来了。
思路
接近于spring的autoProxyCretor的一套机制,利用了BeanPostProcessor,就是在bean的生命周期上做点文章。
spring默认提供的几种auto-proxy: ...
最近公司会使用DSL描述一个domain service。所以趁这个机会也学习下高深的javacc,以前看到一堆的jj_xxx都很头痛,看代码基本都是跳过。
以前看过velocity, cobar的一下代码,都有使用类似jj_xxx,还有最近公司架构师做的一个anxiety,也使用了jj_xx自定义了一套btrace监控的语法:不需要我们自己写java文件,而是按照他的语法规则,它给我们自动生成btrace script。
还有就是万恶的大学,居然没给我们安排编译原理的课程,导致自己基础太差,理解起来颇为困难。没办法只能是硬着头皮先看一些编译原理的基本内容。
推荐一本书: 《编 ...
背景
前一段时间一直在关注一些nio的相关技术,也和公司的架构师交流了一下,学到了一些相关原理,比如nio的优势和劣势。以及一些排查nio bug问题的方式,受益量多。为自己做一下技术储备,以后可以多玩玩nio的相关技术
知识点
unix网络编程第6章: 几种unix下的I/O模型。
阻塞I/O模型 (java io)
非阻塞I/O模型
I/O复用 (java 5的nio)
信号驱动I/O
异步I/O (java7的aio)
几点说明:
1. 阻塞和非阻塞的概念
两者的区别侧重点在于,当前的线程是否会处于挂起,阻 ...
背景
周五下班回家,在公司班车上觉得无聊,看了下btrace的源码(自己反编译)。 一些关于btrace的基本内容,可以看下我早起的一篇记录:btrace记忆
上一篇主要介绍的是btrace的一些基本使用以及api,这里我想从btrace ...
背景
最近着手在一个已有的应用中实施并行加载技术,整理记录一下过程中遇到的问题,方便以后查阅。
关于并行加载可以访问: (业务层)异步并行加载技术分析和设计
姊妹篇: (业务层)异步并行加载ChangeLog
...