- 博客(21)
- 资源 (17)
- 收藏
- 关注
转载 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
本文转自:http://blog.csdn.net/cywosp/article/details/23397179/ 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环
2015-07-24 17:19:04 512
转载 聊聊并发——HashMap、HashTable及ConcurrentHashMap
本文转自:http://www.infoq.com/cn/articles/ConcurrentHashMap/术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组
2015-07-24 16:33:13 451
转载 分布式的一致性
本文转自:http://blog.csdn.net/biaobiaoqi/article/details/8944765本文来自《分布式原理与泛型》的一致性章节笔记。由于缺乏实践经验,这本书对我来说太过理论,难于理解,现在已经暂停该书的阅读,转而加强实践。另有相关博文《CAP和最终一致性》,可供参考阅读。1.分布式的一致性概述分布式系统的一个重要问题是数据的复制。对数据的复制一
2015-07-24 16:27:58 588
转载 KV系统中的chunk和路由设计
引言: 在目前很多KV系统或分布式Cache中,路由策略都是基于物理节点而设计,例如Voldemort的一致性Hash,其Ring中的每个节点,都会对应现实中的某一台物理机器。这样的设计,对于一个比较单纯且相对独立的KV系统而言,应付某个海量的KV应用场景可能没什么问题。但我们现实中的应用场景往往可能是,多个业务场景,都希望访问一个统一的KV集群。那么在这个海量KV系统中,如何有效的
2015-07-24 16:17:06 599
转载 JAVA最多支持多少个线程
1. java的线程开启,默认的虚拟机会分配1M的内存,但是在4G的windows上线程最多也就开到300多 ,是因为windows本身的一些限制导致。2. 虚拟机给每个线程分配的内存(栈空间)是由虚拟机参数-Xss来指定的,在不同平台上对应的默认大小可以 在oracle的官方文档上查询到:http://docs.oracle.com/cd/E13150_01/jrockit_jv
2015-07-24 16:05:42 7519
转载 hibernate一级缓存和二级缓存
一级缓存: 就是Session级别的缓存。一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中。 如果短时间内这个session(一定要同一个session)又做了同一个操作,那么hibernate直接从一级缓存中拿,而不会再去连数据库,取数据。 它是内置的事务范围的缓存,不能被卸载。二级缓存: 就是SessionFactory级别的缓存。顾名
2015-07-24 16:00:41 697
转载 数据库事务隔离
本文转自:http://blog.csdn.net/turkeyzhou/article/details/76361651 什么是事务1.1 我们为什么需要事务数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操
2015-07-24 15:38:33 378
转载 悲观锁和乐观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人
2015-07-24 10:28:34 321
转载 wait和sleep的差别
1. 这两个方法来自不同的类,sleep方法属于Thread,wait方法属于Object。2. 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。3. wait, notify和notifyAll只能在同步控制方法(synchronized)或者同步控制块里面使用,而sleep可以在任何地方使用。4. sleep必须捕获异常,而wait
2015-07-16 10:04:29 396
转载 Java常见内存溢出异常分析(OutOfMemoryError)
1.背景知识1).JVM体系结构 2).JVM运行时数据区JVM内存结构的相关可以参考:http://my.oschina.net/sunchp/blog/3697072.堆溢出(OutOfMemoryError:java heap space)堆(Heap)是Java存放对象实例的地方。堆溢出可以分为以下两种情况,这两种情况都会抛出OutO
2015-07-15 15:35:42 761
转载 java.lang.OutOfMemory分析
一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了
2015-07-15 15:06:42 610
转载 ThreadLocal的正确用法
用法一:在关联数据类中创建private static ThreadLocalThreaLocal的JDK文档中说明:ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread。如果我们希望通过某个类将状态(例如用户ID、事务ID)
2015-07-15 14:48:12 413
转载 【JAVA多线程】JAVA内存模型总结
学习资料:http://www.infoq.com/cn/articles/java-memory-model-1Java的并发采用的是共享内存模型(而非消息传递模型),线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现同步是显式进行的。程序员必须显式指定某个方法或某段代码需要在线
2015-07-15 14:06:17 495
转载 Struts2拦截器的实现原理及源码剖析
本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和result被执行之前或之后进行一些处理。同时,拦截器也可以让你将通用的代码模块化并作为可重用的类。Struts2中的很多特性都是由拦截器来完成的。拦截是AOP
2015-07-15 10:40:32 406
转载 JAVA开源数据库连接池比较
现在常用的开源数据连接池主要有c3p0,dbcp和proxool三种,其中: 1、hibernate开发组推荐使用c3p0;2、spring开发组推荐使用dbcp (dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect ,告诉连接被重置,这个设置可以解决);3、hibernate inaction推荐使用c3p0和proxool;
2015-07-14 16:55:23 657
原创 checkbox全选和反选
HTML页面:jQuery实现CheckBox全选、全不选<script src="http://code.jquery.com/jquery-1.4.4.min.js" type="text/javascript"> 全选 <input name="subBox" type="checkbox" />项1 项2 <input name="subBox" t
2015-07-10 16:29:55 519
转载 Apache实现负载均衡
一、 Apache配置1.下载64位的Apache服务器httpd-2.2.29-x64-r3.zip2.将该包解压至一个目录,如我的目录为E:\Apache2.2.19;3.修改conf/httpd.conf文件:根据解压目录,将文件中的/Apache22全部替换为自己的解压目录,如E:/Apache2.2.19,注意这里的路径中必须使用斜杠“/”;4.根据情况可修
2015-07-10 10:12:34 677
转载 Java NIO:浅析I/O模型
也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Pr
2015-07-07 17:05:32 292
原创 JAVA并发包备忘录
JAVA并发包的功能主要包含:1)原子操作类,诸如AtomicInteger、AtomicLong等类;2)并发集合类,如ArrayBlockingQueue、ConcurrentMap、CopyOnWriteArrayList3)锁机制,比synchronized性能更优的锁机制,boolean captured = lock.tryLock(); try { Syst
2015-07-01 19:28:43 575
转载 java.util.concurrent并发包诸类概览
java.util.concurrent包的类都来自于JSR-166:Concurrent Utilities,官方的描述叫做“The JSR proposes a set of medium-level utilities that provide functionality commonly needed in concurrent programs. ”。作者是大名鼎鼎的Doug Lea
2015-07-01 17:02:39 519
转载 JAVA类加载机制
1.类加载机制介绍在java.lang包里有个ClassLoader类,ClassLoader 的基本目标是对类的请求提供服务,按需动态装载类和资源,只有当一个类要使用(使用new 关键字来实例化一个类)的时候,类加载器才会加载这个类并初始化。一个Java应用程序可以使用不同类型的类加载器。例如Web Application Server中,Servlet的加载使用开发商自定义的类
2015-07-01 16:52:42 369
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人