- 浏览: 360144 次
- 性别:
- 来自: 武汉
最新评论
-
missfmaster:
这框架好特么底层。
Terracotta设计原理分析--(部分内容来自官方描述) -
小黄牛:
很好不错!分享一个在电商购物支付流程中,在各大参与者系统中可能 ...
分布式事务设计-两段式提交 -
zhglhy:
学习了,感谢分享
JAVA垃圾回收分析 -
talentluke:
如果在事务一中出现故障,数据库是可以回滚但消息队列不能回滚,队 ...
用消息队列和消息应用状态表来消除分布式事务(转载) -
langmanxingkong123:
谁说jedis不能存集合类的数据。乱说。。。
redis jredis jedis 使用
文章列表
Redis考虑虚拟内存设计
- 博客分类:
- 开源
虚拟内存指当物理内存不够用时,借用硬盘的空间来当作物理内存使用,就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的 内存空间用于其他需要访问的数据。尤其是对于redis这样的内存数据库,内存总是不够 ...
如何检测一台机器是否宕机?(转载)
- 博客分类:
- 应用架构
检测一台机器是否宕机的应用场景如下:
1, 工作机器宕机,总控节点需要能够检测到并且将原有服务迁移到集群中的其它节点。
2, 总控节点宕机,总控节点的备份节点(一般称为Slave)需要能够检测到并替换成主节点继续对外 ...
淘宝OceanBase设计(转载)
- 博客分类:
- 应用架构
OceanBase有什么特点
OceanBase设计和实现的时候暂时摒弃了许多不需要的DBMS的功能,例如临时表,视图(view),SQL语言支持等,这使得研发团队能够把有限的资源集中到关键的功能上,例如数据一致性、高性能的跨表事务、范围 ...
Redis中持久化设计
- 博客分类:
- 开源
redis的设计是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是“快照”,另一种是“文件追加”的方式。
快照
快照是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照,下面是默认的快照保存配置:save 900 1 #900秒内如果超过1个key被修改,则发起快照保存save 300 10 #300秒内容如超过10个key被修改,则发起 ...
这里需要说明,很多开发者觉得
Memcached
是一种分布式
Cache
,但其实
Memcached
服务端本身是单实例的,只是在客户端实现过程中可以根据存储的主键作分区存储,而这个区就是
Memcached
服务端的一个或者多个实例,如果将客户端也囊括到
Memcached
中,那么可以部分概念上说是集中式的。集中式的构架,无非两种情况:
1.
节点均衡的网状(
JBoss Tree Cache
),利用
JGroup
的多播通信机制来同步数据。
2.Master-Slaves
模式(分布式文件系统),由
Master
来管理
Slave
...
JPA中利用二级缓存优化访问性能
- 博客分类:
- 开源
JPA使用也有好几年了,但是一直都没有对其中的缓存机制使用,我们知道在JPA2.0以后,作为JAVA6的标准,JPA2.0增加了对二级缓存的支持,比如中间件websphere、weblogic、JBOSS等也都相应提供了对OpenJPA2.0以及JPA二级缓存的支持,OpenJPA的缓存机制要比其他的ORM框架自带的缓存要强大的多,其他的ORM框架如hibernate自带的缓存Session级别的,如果你想实现跨Session的缓存就必须集成第三方的缓存(Terracotta、Ehcache、oscache等), 但OpenJPA的缓存是能够跨Session的,对应JPA的标准来说就是跨enti ...
zookeeper初探
- 博客分类:
- 开源
原理:
ZK是Apache Hadoop的一个子项目(分布式服务框架),主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是ZK并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化(统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等)。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。
ZK应用场景
ZK从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的
Memcached的分布式算法
- 博客分类:
- 开源
memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客户端程序库实现的。这种分布式是memcached的最大特点下面假设memcached服务器有node1~node3三台,应用程序要保存键名为“yale”的数据,首先向memcached中添加“yale”。将“yale”传给客户端程序库后,客户端实现的算法就会根据“键”来决定保存数据的memcached服务器。服务器选定后,即命令它保存“yale”及其值, 接下来获取保存的数据。获取时也要将要获取的键“yale”传递给函数库。函数库 ...
EhCache辅助spring Acegi
- 博客分类:
- 应用架构
因为在项目中想通过缓存来acegi的整合,因此选用了Ehcache,后来发现被terracotta收购后的Ehcache,由原本一个简简单单的 Java 缓存引擎变成了一个解决方案,而项目本身更是切分为以下几个大模块:
ehcache
打包了所有的模块
ehcache-core
核心缓存引擎,RMI复制模块和 Hibernate 的插件
2010年6月,Facebook现在的经营规模,诸多传统服务器的技术均将崩溃或根本无法支撑。那么面对5亿的活跃用户,Facebook的工程师们又将如何让网站平稳运转呢?这篇文章将展示Facebook的工程师完成这个艰巨任务所用到的一系列软件。
Facebook级别规模的挑战在我们深入细节之前,先了解一组Facebook不得不面对数据,你就可以想象这种规模。1) Facebook每月的PV量:630,000,000,000 (6万3千亿)2) Facebook上的图片数量超过其他图片网站的总和(包括诸如Flickr这样的图片网站)3) 每个月有超过30亿的图片上传到Facebook4) F ...
Memcached内存利用建议
- 博客分类:
- 开源
内存浪费 根据memcached的内存原理来提高缓存效率,可以看出memcached内存有所浪费,比如:slab的浪费、chunk的浪费。
Slab浪费比如缓存的数据已经确定每个item的大小在1950左右,那么可以看出按照memcached初始分配内存的方式,将有很多的slab区域被浪费掉,比如下面的1952 区域 有890202个item,但是其他的slab却只有几个item
Chunk的浪费每个slab包含了等小的chunk,但是某个slab的chunk可能一直都没有数据。
Chunk存储item的浪费比如定义了chunk的大小为1000,那么每个item都 ...
我在oracle、jboss、apache的linux环境下中遇到过"No space left on device"的错误,开始的时候以为是磁盘空间不够,但是发现很多时候,并不是这样,是因为系统的信号量不够用了
# ipcs -s______________________________ Semaphore Arrays ______________________________key semid owner perms nsems0x00000000 19234816 oraclerac1 600 ...
Memcache内存分配
- 博客分类:
- 开源
Memcached的内存分配以page为单位,默认情况下一个page是1M,可以通过-I参数在启动时指定。如果需要申请内存时,memcached会划分出一个新的page并分配给需要的slab区域。page一旦被分配在重启前不会被回收或者重新分配(page ressign已 ...
weblogic、jboss集群配置,参数优化
- 博客分类:
- 服务器
文档内容非常详细,并且涵盖测试例子,文档结构图如下:
但是其中客户端调用weblogic中的ejb的wlfullclient.jar包非常大,无法上传,请自己在网上找打包方法,非常简单
MySQL必须调整的几项配置
- 博客分类:
- 数据库
innodb_buffer_pool_size:这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个 值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。典型的值是5-6GB(8GB内存), 20-25GB(32GB内存)
innodb ...