- 博客(9)
- 收藏
- 关注
原创 redis 多M-S节点扩容
背景:正在使用的redis 多M-S结构(一下称为redis集群) 内存不够使用了,如何多加一套或者多个M-S到集群中。redis的作者给出了的解决方案类似如下:如原先你部署2套M-S的结构,那么你需要重新配置3套M-S的结构,然后将数据完整的迁移过来。缺点:如果你原先布置的集群只有2个M-S可能还行,如果是10个呢?那么你又要重新部署11个节点,可能这个时候的机器内存已经不足了。...
2015-04-02 12:26:14
267
原创 一个对象占用多少字节?
在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046。[code="java"]import java.lang.instrument.Instrumentation; import java.lang.reflect.Array; import java.lang.reflect.Field; import jav...
2015-02-08 23:56:14
407
java 服务端提供多个接口时小架构
背景:在开发的过程中已经需要提供多个接口给外围系统。服务端在实现想使用统一的方法处理多个接口,例如判断传入的参数是否合理。1.定义两个接口[code="java"]package org.common.single.inf;import org.common.single.condition.Condition1;public interface IQueryServi...
2015-01-22 23:41:12
170
原创 jmap查看java进程占用的数据库连接数
背景:开发中时长会出现无法连接数据库的错误,怀疑应该是不是打开的连接数过多而导致。本例中通过jmap打印虚拟机堆栈信息中的连接数来确定进程所占用的数据库(oracle)连接数。1.查看当前数据库的连接数 select count(*) from v$session;2.启动30个线程同时查询数据库(连接池中最大允许50个连接),但所有线程再并未关闭连接[code="java"]f...
2015-01-16 12:36:13
3496
原创 volatile 与synchronized的区别
synchronized 具备有互斥性和可见性,volatile只具备有可见性打个比方对一个 对一个变量a 进行a++操作synchronized可以保证只有一个线程对a进行操作,计算完之后写回主内存,另一个线程需要从主内存read 出来在load到线程内存中。因此可以保证多线程下其计算的正确性volatile只能保证一个线程在使用a之前去主内存中read出来,但线程之间没有互斥关系,...
2015-01-13 12:16:57
108
原创 CountDownLatch实战
背景:单线程起动一个loader,loader中分多线程计算1.单线程起loader,省略2.多线程loader代码,AbstractDataCounterLoader 启动的线程,run 方法中抽象出calc 让子类实现[code="java"]public class MutiThreadLoader extends AbstractDataCounterLoader { pr...
2015-01-12 13:00:08
179
原创 java对象占用内存情况
32位操作系统中一个对象的对象头占用8字节,对象中的一个引用占4个字节,需要补齐位8的倍数一维数组的为特殊对象,对象头占8个字节,加上4字节的长度数量,加上数组长度N*数组类型String类型占用的字节数位40+2N+pandding(补齐为8的个数)64位操作系统中一个对象的对象头占用16字节,对象中的一个引用占8个字节,需要补齐位8的倍数一维数组的为特殊对象,对象头...
2015-01-12 09:21:07
137
原创 开发小分享
1.两个几乎相同的实体,只是有部分字段不同,此时需要从一个实体拷贝相同的数据到另一个实体,调用set方法去执行。如果实体的成员变量很多 二三十个,那我们的代码就写二三十行。代码就会显得十分臃肿。解决办法:1. 使用反射的机制可以减少代码但是性能很差不推荐。2. 使用BeanUtils.copyPropertie 或者 PropertyUtils.copyProperties 拷...
2014-04-12 13:38:39
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人