美文网首页SpringBoot
dynomite上手指南

dynomite上手指南

作者: 小城大麦 | 来源:发表于2016-09-07 10:58 被阅读480次

dynomite使用netflix开源的一个开源将非分布式的缓存系统改造成分布式的缓存系统,根据亚马逊的Dynamo进行设计,是一个高可用,高性能,支持跨数据中副本的分布式存储代理层。
根据Dynomite的拓扑图,我们创建一个单DC单Rack三个服务节点的dynomite存储层。

安装redis

wget http://download.redis.io/releases/redis-3.2.3.tar.gz
tar zxf redis-3.2.3.tar.gz
cd redis-3.2.3
make install

安装dynomite

$ yum install -y git autoconf automake libtool openssl-devel net-tools
$ git clone git@github.com:Netflix/dynomite.git
$ git checkout master
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=log
$ make
$ src/dynomite -h

创建工作目录

$ mkdir -p /apps/dynomite/bin
$ mkdir -p /apps/dynomite/conf
$ cp src/dynomite /app/dynomite/bin/
$ git clone https://github.com/richieyan/IntroDynomitedb.git

复制IntroDynomitedb中conf下的3个配置到/apps/dynomite/conf
修改配置的IP地址

创建3个redis配置文件

复制redis下的配置,修改端口,bind地址和daemonize
redis1.conf : port 6379
redis2.conf : port 6389
redis3.conf : port 6399
启动这三个redis服务

redis-server redis1.conf
redis-server redis2.conf
redis-server redis3.conf

启动dynomite服务(单DC单Rack的普通集群)

-s 是stats的监听端口 -d 表示后台运行

$ bin/dynomite -c conf/node1.yml -s 22221 -d --output=node1.log
$ bin/dynomite -c conf/node2.yml -s 22222 -d --output=node2.log
$ bin/dynomite -c conf/node3.yml -s 22223 -d --output=node3.log

3个节点构成一个普通集群,无副本复制,但是通过dynomite的端口可以获得任意节点的数据。

使用redis-cli测试

redis-cli -h 10.130.138.47 -p 8102
> set ca California
> get ca
> "California"

通过dynomite的端口进行操作,dynomite会计算key的hash,按照Node的token计算出实际操作的Node,并将请求转发给次节点。
使用Dyno客户端,可以同步节点的token信息,从而使Dyno客户端在java层计算出其实际存储的节点token,可以避免dynomite的二次计算。

相关文章

网友评论

  • df93ce844760:方便加qq或者微信吗?
  • df93ce844760:2.在“创建工作目录”步骤中的“复制IntroDynomitedb中conf下的3个配置到/apps/dynomite/conf
    修改配置的IP地址”是修改哪几个ip呀?
  • df93ce844760:你好,问下,1.这些步骤都是在三个节点进行相同的操作吗?
  • 761eebae5903:你好,非常感谢,两个地方写的有点问题。
    (1)redis第三个server的端口写成了6389,应该是6399;
    (2)girhub上的yaml配置文件中的pem_key_file: 写错了,不应该是你自己新建路径下的conf,应该是源码路径下的conf.
    如果有误,请谅解。
    小城大麦:谢谢指正。

本文标题:dynomite上手指南

本文链接:https://www.haomeiwen.com/subject/hwkgsttx.html