- 浏览: 12473 次
- 性别:
- 来自: 深圳
最新评论
文章列表
背景:正在使用的redis 多M-S结构(一下称为redis集群) 内存不够使用了,如何多加一套或者多个M-S到集群中。
redis的作者给出了的解决方案类似如下:如原先你部署2套M-S的结构,那么你需要重新配置3套M-S的结构,然后将数据完整的迁移过来。缺点:如果你原先布置的集群只有2个M-S可能还行,如果是10个呢?那么你又要重新部署11个节点,可能这个时候的机器内存已经不足了。
解决办法:多M-S结构中,几个MS构成一套集群是由程序控制的。那么增加一个节点之后,新访问集群代理设置11个节点,保留老的代理(10个节点)。将老代理中的数据全部读出,判断是否在新代理中存在,如果不存在则将数据 ...
一个对象占用多少字节?
- 博客分类:
- java
在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046。import java.lang.instrument.Instrumentation;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashSet; ...
背景:在开发的过程中已经需要提供多个接口给外围系统。服务端在实现想使用统一的方法处理多个接口,例如判断传入的参数是否合理。
1.定义两个接口
package org.common.single.inf;
import org.common.single.condition.Condition1;
public interface IQueryService extends IQueryBaseService{
public void myService(Condition1 condition);
}
package org.common.single. ...
背景:开发中时长会出现无法连接数据库的错误,怀疑应该是不是打开的连接数过多而导致。本例中通过jmap打印虚拟机堆栈信息中的连接数来确定进程所占用的数据库(oracle)连接数。
1.查看当前数据库的连接数
select count(*) from v$session;
2.启动30个线程同时查询数据库(连接池中最大允许50个连接),但所有线程再并未关闭连接
for (int i=0;i<30;i++){
Runnable r = new Runnable(){
@Override
public void run() {
Con ...
synchronized 具备有互斥性和可见性,volatile只具备有可见性
打个比方对一个 对一个变量a 进行a++操作
synchronized可以保证只有一个线程对a进行操作,计算完之后写回主内存,另一个线程需要从主内存read 出来在load到线程内存中。因此可以保证多线程下其计算的正确性
volatile只能保证一个线程在使用a之前去主内存中read出来,但线程之间没有互斥关系,同时会有多个线程进行++操作,导致写回主内存的值会变小
find查询符合两个匹配名字的写法
- 博客分类:
- shell
find / -name "*pp" -o -name "*po"
背景:单线程起动一个loader,loader中分多线程计算
1.单线程起loader,省略
2.多线程loader代码,AbstractDataCounterLoader 启动的线程,run 方法中抽象出calc 让子类实现
public class MutiThreadLoader extends AbstractDataCounterLoader {
private static final Logger logger = LoggerFactory.getLogger(MutiThreadLoader.class);
/**
* 线程数
*/
private ...
32位操作系统中
一个对象的对象头占用8字节,对象中的一个引用占4个字节,需要补齐位8的倍数
一维数组的为特殊对象,对象头占8个字节,加上4字节的长度数量,加上数组长度N*数组类型
String类型占用的字节数位40+2N+pandding(补齐为8的个数)
64位操作系统中
一个对象的对象头占用16字节,对象中的一个引用占8个字节,需要补齐位8的倍数
一维数组的为特殊对象,对象头占16个字节,加上8字节的长度数量,加上数组长度N*数组类型
String类型占用的字节数位64+2N+pandding(补齐为8的个数)