- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 mysql binlog的格式
MySQL binlog的格式有三种:基于SQL语句的复制(statement-based replication, SBR)基于行的复制(row-based replication, RBR)混合模式复制(mixed-based replication, MBR)相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。它主要用于mysql的复制技术。idb基本上都是供的基于行...
2018-04-12 15:10:39 474
原创 memcached内存分类机制
内存分配机制mc内存分配机制简介memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存,Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。先来解释一下与Slab Allocator存储有关的几个术语:Page:分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk...
2018-04-12 15:08:48 214
原创 Java生产者和消费者
synchronizedThis version is the fewest lines of code, largely because the synchronization mechanism used is built into the language and runtime. But the programmer has to remember to avoid a couple of...
2018-04-12 15:05:45 239
原创 一致性哈希原理及应用浅析
背景现实场景单个节点的容量达到上限,无法继续单点增加内存,如何解决?单个节点支撑的QPS达到上限,如何解决?初步方案 增加N个缓存节点,为了保证缓存数据的均匀,一般情况会采用对key值hash,然后取模的方式,然后根据结果,确认数据落到哪台节点上:如下:hash(key)%N很好,这个的确解决了上面的问题,实现了初步的分布式存储,数据均匀分散到了各个节点上,流量请求也均匀的分散到了各个节点。方...
2018-04-12 15:03:06 324
原创 Java线程状态
Java中的线程的生命周期大体可分为5种状态。新建(NEW):新创建了一个线程对象。可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。阻塞(BLOC...
2018-04-12 14:58:42 183
原创 Java多线程中断机制
thread中的三个方法:interrupt()、interrupted()、isInterrupted()1、interrupt()public void interrupt() { if (this != Thread.currentThread()) checkAccess(); synchronized (blockerLock) { Interruptible...
2018-04-12 14:56:29 320
原创 java阻塞队列
JDK7提供了7个阻塞队列。分别是ArrayBlockingQueue :一个由数组结构组成的有界阻塞队列。LinkedBlockingQueue :一个由链表结构组成的有界阻塞队列。PriorityBlockingQueue :一个支持优先级排序的无界阻塞队列。DelayQueue:一个使用优先级队列实现的无界阻塞队列。SynchronousQueue:一个不存储元素的阻塞队列。LinkedTr...
2018-04-12 14:53:10 288
原创 java常见知识点
深度方面:基础: 1、事务4个特征介绍;acid2、排序算法;3、简单描述2、3个设计模式4、乱码问题如何解,utf8和gbk编码本质区别是什么?5、一致性hash算法描述?6、冥等操作用于那些场景?(如何防止重复提交)7、序列化思路有那些?8、数据加密协议有那些?9、http协议有那些部分组成?10、字符流和字节流的区别?java:1、JUC库包括那些核心类?详细讲解其中几个。 参考: 2、多...
2018-04-12 14:49:57 317
原创 如何从map中提取value并转换成long
old:taskReportDataDTO.setUv(Long.valueOf(hbaseData.get(HbaseColumnEnum.uv).toString())); new:taskReportDataDTO.setPv(MapUtils.getLong(hbaseData, HbaseColumnEnum.pv.name().toLowerCase(), 0L));http://c...
2018-04-08 11:44:15 9763 2
原创 java如何计算响应时长rt
import com.google.common.base.Stopwatch;开始计时Stopwatch stopwatch = Stopwatch.createStarted();停止计时stopwatch.stop();计算出来的rt就是 stopwatch.elapsed(TimeUnit.MILLISECONDS)日志输出样例schedulingLogger.info("refre...
2018-04-08 11:01:44 1963
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人