- 博客(13)
- 收藏
- 关注
淘宝消息中间件Metamorphosis开源
Metamorphosis是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着广泛的应用,现已开源.http://metaq.taobao.org/...
2012-03-10 13:27:38 215
MappedByteBuffer强制释放后读取引发jvm crash
这几天使用MappedByteBuffer对系统进行了实现,在压测过程中发现启动多个group订阅时服务端会发生jvm crash ,排查后找到了原因,记录一下。 部分信息如下:## A fatal error has beendetected by the Java Runtime Environment:## EXCEPTION_ACCESS_VIOLATI...
2011-10-14 20:53:54 594
原创 关于BeanUtils拷贝null属性的问题
关于BeanUtils拷贝null属性的问题jen wang 帮同事查看物流发货问题时,发现BeanUtils在copy null属性时会有一些问题。现在总结一下现象、原因和解决方法。问题现象 1.当源对象(a)中存在一个java.sql.Date类型的属性并且值为null,目标对象(b)中也存在这个同名同类型的属性。把a对象属性值copy给b时...
2011-05-05 21:45:46 671
hadoop单元测试方法--使用和增强MRUnit[2]
接上篇,居然非得分两篇 3 增强MRUnit 下面介绍为MRUnit框架增加了支持MultipleOutputs、从文件加载数据集和自动装配等几个特性,使它更加便于使用。如何支持MultipleOutputs 然而很多场景下我们需要使用MultipleOutputs作为reduce的多文件输出,MRUnit缺少支持。分析源码后为...
2011-04-15 10:31:52 166 1
hadoop单元测试方法--使用和增强MRUnit[1]
hadoop单元测试方法--使用和增强MRUnit1前言 hadoop的mapreduce提交到集群环境中出问题的定位是比较麻烦的,有时需要一遍遍的修改代码和打出日志来排查一个很小的问题,如果数据量大的话调试起来相当耗时间。因此有必要使用良好的单元测试手段来尽早的消除明显的bug(当然仅有单元测试是不够的,毕竟跟集群的运行环境还是不一样的)。 ...
2011-04-15 10:28:12 139
JUC代码浅析[6]——基于AQS的CyclicBarrier
JUC代码浅析[6]——基于AQS的CyclicBarrier CyclicBarrier是一种同步机制允许一组线程相互等待,等到所有线程都到达一个屏障点才退出await方法,它没有直接实现AQS而是借助ReentrantLock来实现的同步机制。它是可循环使用的,而CountDownLatch是一次性的,另外它体现的语义也跟CountDownLatch不同,Coun...
2011-04-14 20:28:44 192
原创 JUC代码浅析[5]——基于AQS的CountDownLatch
JUC代码浅析[5]——基于AQS的CountDownLatch CountDownLatch是一种使线程等待一组其他线程操作完成再开始的同步方式,初始化时设置一个计数值,每完成一次操作后countDown()对计数值减操作,线程等待await()直到计数值为0。 为了说明使用场景拷贝了代码注释中的例子,class Driver {// ......
2011-04-14 20:27:37 131
JUC代码浅析[4]——基于AQS的信号量Semaphore
JUC代码浅析[4]——基于AQS的信号量Semaphore Semaphore是基于AQS共享模式实现的计数信号量,它维护一个资源一个时期内最多访问者个数。超过限制数量的线程被阻塞。使用state表示许可的个数。acquire操作减少计数,release增加计数,许可计数为0时就不允许新的访问进入。 获取许可, public void acquire(...
2011-04-14 20:26:34 144
JUC代码浅析[3]——基于AQS的锁ReentrantReadWriteLock
JUC代码浅析[3]——基于AQS的锁ReentrantReadWriteLock ReentrantReadWriteLock 也是基于AQS实现的锁,它的特点是一个资源能够被多个读线程访问,或者被一个写线程访问,读和写是互斥的,可以同时有多个读但只能有一个写,大量读操作的场景下性能较好。Reentran...
2011-04-14 20:24:33 115
原创 JUC代码浅析[2]——基于AQS的锁ReentrantLock
JUC代码浅析[2]——基于AQS的锁ReentrantLock ReentrantLock是使用比较普遍的一个可重入锁,它是互斥的,一个锁只能被一个线程占有。它的方法基本都是委托给继承AQS的Sync实现的。其中Sync有两种实现,公平和非公平。Sync使用state(通过AQS暴露的getState和setState方法)保存线程的获取次数。总的策略为state次...
2011-04-14 20:15:38 296
原创 JUC代码浅析[1]——同步器AQS
JUC代码浅析[1]——同步器AQS AQS(AbstractQueuedSynchronizer)是一个提供实现各种锁和同步器的基本框架,它实现了调度逻辑,留出具体的进入和释放规则给子类实现。JUC中基于AQS实现的有ReentrantLock,Semaphore,CountDownLatch, ReetrantReadWriteLock,FutureTask等...
2011-04-14 20:14:11 187
原创 缩略图与原图不一致的java实现
[i]07年写的文章,这个博客开了很久了一直没写,把旧博客上的这篇移到这里。从现在开始用这个博客[/i] 昨天早上朋友传给我一张图片,曾被此君的一些恶作剧图片吓倒过,这次刚开始也不敢打开。这张图片在winxp下缩略图显示与打开后的内容不一样,让几个同学看了一下,他们都说看过了。就是前段时间网上流传的‘一张令所有人吃惊的图片’,是一张椅子的图片,但是,如果你的系统是XP,把它下载...
2011-04-14 20:06:41 249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人