![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源
文章平均质量分 75
yaleqiu
这个作者很懒,什么都没留下…
展开
-
Memcached缓存客户端连接池设计
设计的目的就是为了解决资源的申请和释放的开销增加系统压力的问题,将资源通过池的方式回收重用,有利于系统性能的提高。memcached cache client 其实是通过socket来和服务端进行通信,建立socket连接也是比较消耗时间的工作,因此设计配置池的初始连接数(initConn),最小连接数(minConn),最大连接数(maxConn)。这三者关系如下图,维护他们之间状态转移的就是后...原创 2011-03-19 12:35:59 · 213 阅读 · 0 评论 -
HDFS框架中便于借鉴的设计
HDFS几个设计特点:1. Block的放置:默认不配置。一个Block会有三份备份,一份放在NameNode指定的DataNode,另一份放在与指定DataNode非同一Rack上的DataNode,最后一份放在与指定DataNode同一Rack上的DataNode上。备份无非就是为了数据安全,考虑同一Rack的失败情况以及不同Rack之间数据拷贝性能问题就采用这种配置方式。2. 心跳检测D...原创 2012-05-25 14:03:38 · 94 阅读 · 0 评论 -
Terracotta设计原理分析--(部分内容来自官方描述)
因为工作中历史产品采用了terracotta作为分布式缓存线性扩展平台,因此不得不提前对其原理做了相关了解,当然其中很多的设计思想和oracle、memcached的设计相似,但也有自己的亮点,那就是JVM的懒加载细粒度拷贝以及线性扩展,使得序列化对象消耗大大降低,提高CPU使用率以及内存无缝线性扩展。我在研究terracotta的时候,没有急于去尝试环境搭建以及demo实现,首先我去了解了一...原创 2012-05-25 23:47:37 · 135 阅读 · 0 评论 -
Terracotta Server[兵马俑]集群
Terracotta的介绍以及原理在我之前的文章中已经做了相关介绍,那么这次我们就来看看它是如何实现集群的。 测试代码编写我们首先写一个demo,该demo在没有terracotta的环境下执行一次,看看结果我们首先先写一个简单的多线程代码(我们这个例子制定共享TerracottaDemo类的demo对象,它包含的count和yale对象也就随之被整个集群共享了): packa...2012-06-14 01:23:09 · 328 阅读 · 0 评论 -
hadoop分布式集群
hadoop的基础知识我就不在这里介绍了,任何有关hadoop书籍中都有非常详细的原理以及其开源框架(HDFS、Mapreduce、combiner、Partitioner等)、子项目(Hive、Hbase等)的介绍以及讲解,而这些方面的知识也不是在短期内能够了解和深入的,有一个循序渐进的过程,我这里只是针对其集群结合介绍其原理介绍,让大家更快速的对hadoop有一个了解,但也请大家意识到,会...2012-04-05 19:31:13 · 225 阅读 · 0 评论 -
webx3初接触
由于webx3采用maven管理项目部署,本地通过maven生成了一个webx3程序开发的框架后,为了能够做二次开发,在eclipse下需要安装maven插件(for eclipse)、springext插件(for eclipse)、git插件(for eclipse),安装后,在eclipse导入了webx3的工程(eclipse中选择import->existing maven p...原创 2013-04-29 12:51:59 · 190 阅读 · 0 评论 -
webx3整合dubbo
由于webx3是maven项目,dubbo又是一个分布式服务框架,网上也没有任何文章来介绍,因此在对maven不了解的情况下是无法找到头绪来和dubbo整合的,这里我按照步骤进行图解,以便于有这方面框架的爱好者能够快速整合。webx3集成到eclipse并在tomcat下独立运行的方法,我的blog中有相关文章介绍,这里就不讲解了,dubbo的原理以及搭建、集群配置、优化等可以在官网上了解...2013-04-30 02:10:08 · 144 阅读 · 0 评论 -
tddl+diamond(一)
简介:tddl的相关介绍请在http://rdc.taobao.com/team/jm/archives/1642中进行了解,这里就不做介绍了,diamond是淘宝开源管理持久配置的系统,持久配置是指配置数据会持久化到磁盘和数据库中,diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数...原创 2013-05-05 15:36:45 · 201 阅读 · 0 评论 -
tddl+diamond(二)
diamond的相关原理介绍,我们已经通过其他的文章进行了讲解,这篇文章我们着重讲解下diamond的初始化配置,以及tddl的初始化配置。下载、部署diamonddiamond的svn下载地址:http://code.taobao.org/svn//diamond/trunk(下载16版本的diamond,我们稍后要用到tddl,因此我们不能下载diamond的最新版本20,因为td...原创 2013-05-05 15:37:28 · 407 阅读 · 0 评论 -
Redis考虑虚拟内存设计
虚拟内存指当物理内存不够用时,借用硬盘的空间来当作物理内存使用,就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的 内存空间用于其他需要访问的数据。尤其是对于redis这样的内存数据库,内存总是不够用的。除了可以将数据分割到多个redis server外。另外的能够提高数据库容量的办法就是使用vm把那些不经常访问的数据交换的磁盘上。如果我们的存储的数据总是有少部分数据被经常访问,大部分数...原创 2011-03-18 13:37:08 · 80 阅读 · 0 评论 -
JPA中利用二级缓存优化访问性能
JPA使用也有好几年了,但是一直都没有对其中的缓存机制使用,我们知道在JPA2.0以后,作为JAVA6的标准,JPA2.0增加了对二级缓存的支持,比如中间件websphere、weblogic、JBOSS等也都相应提供了对OpenJPA2.0以及JPA二级缓存的支持,OpenJPA的缓存机制要比其他的ORM框架自带的缓存要强大的多,其他的ORM框架如hibernate自带的缓存Session级别的...原创 2010-11-24 18:25:05 · 239 阅读 · 0 评论 -
Memcached内存利用建议
内存浪费 根据memcached的内存原理来提高缓存效率,可以看出memcached内存有所浪费,比如:slab的浪费、chunk的浪费。Slab浪费比如缓存的数据已经确定每个item的大小在1950左右,那么可以看出按照memcached初始分配内存的方式,将有很多的slab区域被浪费掉,比如下面的1952 区域 有890202个item,但是其他的slab却只有几个item ...2010-04-17 14:08:59 · 89 阅读 · 0 评论 -
Memcache内存分配
Memcached的内存分配以page为单位,默认情况下一个page是1M,可以通过-I参数在启动时指定。如果需要申请内存时,memcached会划分出一个新的page并分配给需要的slab区域。page一旦被分配在重启前不会被回收或者重新分配(page ressign已经从1.2.8版移除了) Slabs划分数据空间 Memcached并不是将所有大小的数据都放在一起的,而是预先将数据空间划...原创 2010-01-26 17:19:42 · 141 阅读 · 0 评论 -
Memcached的分布式算法
memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客户端程序库实现的。这种分布式是memcached的最大特点下面假设memcached服务器有node1~node3三台,应用程序要保存键名为“yale”的数据,首先向memcached中添加“yale”。将“yale”传给客户端程序...原创 2010-09-16 12:33:23 · 92 阅读 · 0 评论 -
JAVA垃圾回收分析
JAVA垃圾回收简介java中的内存java虚拟机自己去管理的,java的内存分配分为两个部分,一个是数据堆,一个是栈。 堆是给开发人员用的,是在JVM启动时创建,程序在运行的时候一般分配数据堆,把局部的临时的变量都放进去,生命周期和进程有关系,在堆中分配的内存由java虚拟机的自动垃圾回收器来管理,堆内存用来存放由new创建的对象和数组。 栈是留给JVM自己用的,用来存放类的信息的,它...原创 2011-04-23 12:17:19 · 101 阅读 · 0 评论 -
redis jredis jedis 使用
一、 简介Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合(list,set ,sorted set和hash)。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内...原创 2011-04-28 18:53:35 · 154 阅读 · 0 评论 -
redis的主从复制配置
一、 集群介绍Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面是关于redis主从复制的一些特点:1.master可以有多个slave2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构3.主从复制不会阻塞master。也就是说当一...原创 2011-04-28 22:24:03 · 82 阅读 · 0 评论 -
zookeeper初探
原理:ZK是Apache Hadoop的一个子项目(分布式服务框架),主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是ZK并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化(统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等)。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。 Z...原创 2010-09-27 12:22:33 · 104 阅读 · 0 评论 -
memcache特性、优点、限制
这里需要说明,很多开发者觉得Memcached是一种分布式Cache,但其实Memcached服务端本身是单实例的,只是在客户端实现过程中可以根据存储的主键作分区存储,而这个区就是Memcached服务端的一个或者多个实例,如果将客户端也囊括到Memcached中,那么可以部分概念上说是集中式的。集中式的构架,无非两种情况:1.节点均衡的网状...原创 2011-02-14 17:10:42 · 302 阅读 · 0 评论 -
Redis中持久化设计
redis的设计是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是“快照”,另一种是“文件追加”的方式。 快照 快照是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过...原创 2011-03-11 15:27:17 · 80 阅读 · 0 评论 -
对淘宝tair分布式K、V的一些理解
Tair是什么Tair是由淘宝开发的key/value方案,系统默认支持基于内存和文件的存储引擎,对应于通常我们所说的缓存和持久化存储,这里可以获取更多关于tair的信息,淘宝团队介绍,Tair在淘宝有着大规模的应用,在登录淘宝、查看商品详情页面、在淘江湖和好友“捣浆糊”等等时候,后面都在直接或间接的和Tair交互。对照表Tair使用路由表来解决数据的路由问题。简单的路由表...2012-09-23 10:18:51 · 170 阅读 · 0 评论