美文网首页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