【转载】Java分布式键-值缓存系统Voldemort
Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。
Voldemort的特点
- 缓存数据可以自动在各个服务器节点之间同步复制。
- 每一个服务器的缓存数据被横向分割,因此是总缓存的一个子集。
- 严格保持缓存的一致性。
- 提供服务器宕机快速恢复方案。
- 可配置的数据存储引擎。
- 可配置的数据序列化方式。
- 每一个数据项都有版本标识,用来保证数据的完整性和可用性。
- 每一个缓存节点都是独立的,因此任何一个节点的故障都不会影响系统的正常运行。
Voldemort键-值原理图
Voldemort逻辑架构图
Voldemort物理架构图
Voldemort的配置方式
集群配置文件:
<cluster><!-- The name is just to help users identify this cluster from the gui --><name>mycluster</name><zone><zone-id>0</zone-id><proximity-list>1</proximity-list><zone><zone><zone-id>1</zone-id><proximity-list>0</proximity-list><zone><server><!-- The node id is a unique, sequential id beginning with 0 that identifies each server in the cluster--><id>0</id><host>vldmt1.prod.linkedin.com</host><http-port>8081</http-port><socket-port>6666</socket-port><admin-port>6667</admin-port><!-- A list of data partitions assigned to this server --><partitions>0,1,2,3</partitions><zone-id>0</zone-id></server><server><id>1</id><host>vldmt2.prod.linkedin.com</host><http-port>8081</http-port><socket-port>6666</socket-port><admin-port>6667</admin-port><partitions>4,5,6,7</partitions><zone-id>1</zone-id></server></cluster>
数据存储方式配置文件:
<stores><store><name>test</name><replication-factor>2</replication-factor><preferred-reads>2</preferred-reads><required-reads>1</required-reads><preferred-writes>2</preferred-writes><required-writes>1</required-writes><persistence>bdb</persistence><routing>client</routing><routing-strategy>consistent-routing</routing-strategy><key-serializer><type>string</type><schema-info>utf8</schema-info></key-serializer><value-serializer><type>json</type><schema-info version="1">[{"id":"int32", "name":"string"}]</schema-info><compression><type>gzip<type></compression></value-serializer></store></stores>
Voldemort的使用示例
value = store.get(key)
store.put(key, value)
store.delete(key)
总结
Voldemort是分布式缓存系统,因此可以应用在中大型的软件项目中,性能方面也都还不错。
本文链接:http://www.codeceo.com/article/voldemort-java-key-value-catch.html
本文作者: 小峰
【转载】Java分布式键-值缓存系统Voldemort相关推荐
- 分布式键值系统Amazon Dynamo简介
分布式键值系统Amazon Dynamo简介 Dynamo采用的技术 虚拟节点 Gossip协议 NRW Vector Clock 读写流程 参考链接 Dynamo采用的技术 问题 采用的技术 数据分 ...
- 解析高可用分布式键值存储 etcd 的原理
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章将会介绍 etcd 的实现原理,其中包括 Raft 协议.存储两大模块,在最后我们也会简单介绍 etcd 一些具体应用 ...
- fastjson查找指定键值_分布式键值存储 etcd
引言 前面的文章中,介绍了基于Paxos的ZooKeeper,本文将介绍另一种分布式一致性算法Raft的工业级实现----etcd,它们虽然实现方案不同,但是最终的实现效果都很像,而且etcd相较于Z ...
- 分布式键值存储ETCD
分布式键值存储 前言 实现分布式系统的目标以及挑战 分布式ETCD存储 etcd介绍 基于etcd的使用场景 1.键值对存储 2.服务注册与发现 3.消息发布与订阅 4.分布式锁 etcd相关术语(关 ...
- 分布式键值存储系统ETCD介绍
前文介绍了分布式服务框架Zookeeper的一些概念,本文继续介绍ETCD相关概念.ETCD作为分布式键值存储系统,使用场景上和Zookeeper有很多相似之处,但在设计理念以及架构稳定性和性能上有了 ...
- 分布式键值存储系统ETCD调研
分布式键值存储系统ETCD调研 分布式键值存储系统ETCD调研 简介 etcd是一个开源的分布式键值存储工具--为CoreOS集群提供配置服务.发现服务和协同调度.Etcd运行在集群的每个coreos ...
- Java心得--键值、枚举器
1. 集(Set):和数学上的"集合"概念相对应,是最简单的一种集合. Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序. Set集合中不包含重复元素,即任意的两个元素e ...
- 搭建分布式键值对文件系统FastDFS
转载来源:https://www.jianshu.com/p/1c71ae024e5e 参考 官方网站:https://github.com/happyfish100/ 配置文档:https://gi ...
- java存储键值结构_java-键值存储为主数据库
我将要开始一个项目,该项目的读写操作非常频繁且频繁.因此,环顾四周,我发现内存数据库正是为此目的而创建的.经过更多调查后,我进入了redis. Redis看起来很酷(虽然刚开始阅读,但是对此有很多了解 ...
- java list键值_java基础之对List,Map,Set等集合键值对的简单认识
[一.集合] 特征: 数组:定长.可以放基本数据类型. List:变长.只能放对象.有序,可重复. Set :变长.只能放对象.无序,不可重复. Map :变长.只能放对象.无序,键值对. 重要实现类 ...
最新文章
- php删除数组中指定值的元素
- 通过PRINT过程制作报表
- mysql 自己写数据库,自己写了一个简单的mysql数据库连接类
- leetcode 474. Ones and Zeroes | 474. 一和零(双约束背包问题)
- Akka并发编程——第二节:Actor模型(一)
- .NET 6 新特性 —— Random.Shared
- docker在win7下的使用
- macbook 打开多个终端
- 多个jdk共存与切换
- matlab两表格合并,在matlab中将两个单元合并到一个单个单元中(merge two cell in one single cell in matlab)...
- linux用ping命令测试网速,怎么用ping命令测试网速
- 两列数据对比找不同,并且高亮数据不同的单元格
- USB摄像头驱动分析
- 微信小程序手把手入门教程
- 华为OD机试真题 Java 实现【完美走位】【2022.11 Q4】
- WARNING: One of the plugins you are using supports Java 8 language features. To try the support buil
- 软件工程毕设项目推荐
- 腾讯云服务器如何重装系统
- css自动换行,css代码
- Android程序员面试必备的知识点,Android程序员
热门文章
- 内网渗透系列:隐匿攻击方法
- 家用无线路由器WDS初始化失败解决方法
- android 豁免的广播及广播白名单,浅谈BLE地址、隐私机制、白名单、定向广播
- RxSwift学习(一) --- RxSwift介绍
- 11gR2 新特性--待定的统计信息(Pending Statistic)
- 黄一老师:管理者需要知道的“三多”和“三少”
- 从《计算机网络》到TCP/IP
- 前端架构师的YY定义
- python和按键精灵自动化测试_IOS开发入门之iOS自动化测试需求实现(iOS按键精灵类似)...
- C++面向对象程序设计