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相关推荐

  1. 分布式键值系统Amazon Dynamo简介

    分布式键值系统Amazon Dynamo简介 Dynamo采用的技术 虚拟节点 Gossip协议 NRW Vector Clock 读写流程 参考链接 Dynamo采用的技术 问题 采用的技术 数据分 ...

  2. 解析高可用分布式键值存储 etcd 的原理

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章将会介绍 etcd 的实现原理,其中包括 Raft 协议.存储两大模块,在最后我们也会简单介绍 etcd 一些具体应用 ...

  3. fastjson查找指定键值_分布式键值存储 etcd

    引言 前面的文章中,介绍了基于Paxos的ZooKeeper,本文将介绍另一种分布式一致性算法Raft的工业级实现----etcd,它们虽然实现方案不同,但是最终的实现效果都很像,而且etcd相较于Z ...

  4. 分布式键值存储ETCD

    分布式键值存储 前言 实现分布式系统的目标以及挑战 分布式ETCD存储 etcd介绍 基于etcd的使用场景 1.键值对存储 2.服务注册与发现 3.消息发布与订阅 4.分布式锁 etcd相关术语(关 ...

  5. 分布式键值存储系统ETCD介绍

    前文介绍了分布式服务框架Zookeeper的一些概念,本文继续介绍ETCD相关概念.ETCD作为分布式键值存储系统,使用场景上和Zookeeper有很多相似之处,但在设计理念以及架构稳定性和性能上有了 ...

  6. 分布式键值存储系统ETCD调研

    分布式键值存储系统ETCD调研 分布式键值存储系统ETCD调研 简介 etcd是一个开源的分布式键值存储工具--为CoreOS集群提供配置服务.发现服务和协同调度.Etcd运行在集群的每个coreos ...

  7. Java心得--键值、枚举器

    1. 集(Set):和数学上的"集合"概念相对应,是最简单的一种集合. Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序. Set集合中不包含重复元素,即任意的两个元素e ...

  8. 搭建分布式键值对文件系统FastDFS

    转载来源:https://www.jianshu.com/p/1c71ae024e5e 参考 官方网站:https://github.com/happyfish100/ 配置文档:https://gi ...

  9. java存储键值结构_java-键值存储为主数据库

    我将要开始一个项目,该项目的读写操作非常频繁且频繁.因此,环顾四周,我发现内存数据库正是为此目的而创建的.经过更多调查后,我进入了redis. Redis看起来很酷(虽然刚开始阅读,但是对此有很多了解 ...

  10. java list键值_java基础之对List,Map,Set等集合键值对的简单认识

    [一.集合] 特征: 数组:定长.可以放基本数据类型. List:变长.只能放对象.有序,可重复. Set :变长.只能放对象.无序,不可重复. Map :变长.只能放对象.无序,键值对. 重要实现类 ...

最新文章

  1. php删除数组中指定值的元素
  2. 通过PRINT过程制作报表
  3. mysql 自己写数据库,自己写了一个简单的mysql数据库连接类
  4. leetcode 474. Ones and Zeroes | 474. 一和零(双约束背包问题)
  5. Akka并发编程——第二节:Actor模型(一)
  6. .NET 6 新特性 —— Random.Shared
  7. docker在win7下的使用
  8. macbook 打开多个终端
  9. 多个jdk共存与切换
  10. matlab两表格合并,在matlab中将两个单元合并到一个单个单元中(merge two cell in one single cell in matlab)...
  11. linux用ping命令测试网速,怎么用ping命令测试网速
  12. 两列数据对比找不同,并且高亮数据不同的单元格
  13. USB摄像头驱动分析
  14. 微信小程序手把手入门教程
  15. 华为OD机试真题 Java 实现【完美走位】【2022.11 Q4】
  16. WARNING: One of the plugins you are using supports Java 8 language features. To try the support buil
  17. 软件工程毕设项目推荐
  18. 腾讯云服务器如何重装系统
  19. css自动换行,css代码
  20. Android程序员面试必备的知识点,Android程序员

热门文章

  1. 内网渗透系列:隐匿攻击方法
  2. 家用无线路由器WDS初始化失败解决方法
  3. android 豁免的广播及广播白名单,浅谈BLE地址、隐私机制、白名单、定向广播
  4. RxSwift学习(一) --- RxSwift介绍
  5. 11gR2 新特性--待定的统计信息(Pending Statistic)
  6. 黄一老师:管理者需要知道的“三多”和“三少”
  7. 从《计算机网络》到TCP/IP
  8. 前端架构师的YY定义
  9. python和按键精灵自动化测试_IOS开发入门之iOS自动化测试需求实现(iOS按键精灵类似)...
  10. C++面向对象程序设计