博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSDB分布式部署
阅读量:6689 次
发布时间:2019-06-25

本文共 4060 字,大约阅读时间需要 13 分钟。

本文档主要介绍用于线上环境SSDB部署步骤,利用Twemproxy代理实现SSDB的分布式存储,部署SSDB节点为主主模式,仅对单个SSDB节点进行读写,SSDB节点down后切换到另一个SSDB节点进行读写。

操作系统:               CentOS  6.7 

节点规划:

      Twemproxy       192.168.10.100    

      ssdb1 master    192.168.10.101

      ssdb2 master    192.168.10.102

部署SSDB

       是基于底层存储引擎  实现的NOSQL 数据库,接口支持类似于 Redis,完全兼容 Redis 的协议,支持 list, has, zset 等数据结构。与 Redis 相比较,SSDB 利用持久化设备存储,避免了纯内存数据库的容量问题,与 LevelDB 的关系是 SSDB 利用了 LevelDB 的高性能存储实现,为其实现了网络和多数据结构支持,除此之外,支持多节点的主备、主主模式。

安装SSDB

1 wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip2 unzip master3 cd ssdb-master4 make5 # 将安装在 /usr/local/ssdb 目录下6 sudo make install7 #/usr/local/ssdb目录下的脚本用于管理ssdb

主主配置

下面开始配置节点ssdb1,ssdb2配置类似

1 cd /usr/local/ssdb 2 #编辑配置文件ssdb.conf 3 vim ssdb.conf 4    5 work_dir = ./var         #data保存位置 6 pidfile = ./var/ssdb.pid 7 server: 8         ip: 192.168.10.101 9         port: 888910 replication:11         binlog: yes12                 capacity: 2000000013         # Limit sync speed to *MB/s, -1: no limit14         sync_speed: -115         slaveof:16                 # to identify a master even if it moved(ip, port changed)17                 # if set to empty or not defined, ip:port will be used.18                 id: svc_119                 # sync|mirror, default is sync20                 type: mirror21                 host: 192.168.10.10222                 port: 888823                 #auth: password24 logger:25         level: debug26         output: log.txt #log保存位置27         rotate:28                 size: 100000000029 leveldb:30         # in MB31         cache_size: 50032         # in KB33         block_size: 3234         # in MB35         write_buffer_size: 6436         # in MB37         compaction_speed: 20038         # yes|no39         compression: no

启动SSDB

1 cd /usr/local/ssdb 2 # 启动主库, 此命令会阻塞住命令行 3 ./ssdb-server ssdb.conf 4   5 # 或者启动为后台进程(不阻塞命令行) 6 ./ssdb-server -d ssdb.conf 7   8 # 启动 ssdb 命令行 9 ./tools/ssdb-cli -p 888810  11 # 停止 ssdb-server12 ./ssdb-server ssdb.conf -s stop

 SSDB开机启动

1 # 将ssdb源代码目录下的 ./tools/ssdb.sh 脚本放到 /etc/init.d 目录下 2 cp ${ssdb_home}/tools/ssdb.sh /etc/init.d/ssdb 3    4 #配置/etc/init.d/ssdb 的configs,configs的值为ssdb.conf的路径,如下所示 5 vim /etc/init.d/ssdb 6    7 configs="/usr/local/ssdb/ssdb.conf" 8    9 #将ssdb加入开机启动10 sudo chkconfig --add ssdb11 sudo chkconfig ssdb on

部署Twemproxy

      wemproxy是twtter开源的一个redis和memcache代理服务器,这里我们使用Twemproxy代理来代理SSDB集群来实现数据的分布式存储,即shared。

安装Twemproxy

1 ## 安装automake、libtool 、xz工具 2 $  yum install automake libtool xz -y 3 ## 安装autoconf 4 $  wget  http://down1.chinaunix.net/distfiles/autoconf-2.69.tar.xz 5 $  xz -d autoconf-2.69.tar.xz 6 $  tar xf autoconf-2.69.tar -C /opt 7 $  cd /opt/autoconf-2.69 8 $  ./configure 9 $  make && make install10 ## 安装Twemproxy11 $  git clone https://github.com/twitter/twemproxy.git12 $  cd  twemproxy/13 $  autoreconf -fvi14 $  ./configure15 $  make && make install16 ## 将Twemproxy的配置文件放置在/etc/下、17 $  mkdir /etc/nutcracker18 $  cp  conf/nutcracker.yml  /etc/nutcracker/nutcracker.yml

配置Twemproxy

## 修改配置文件$ vim   /etc/nutcracker/nutcracker.yml beta:  listen: 127.0.0.1:22122   # 监听地址和端口  hash: fnv1a_64            # 散列算法  hash_tag: "{}"            # 假设ssdb中一个对象有多个key属性,如kora这个人的姓名name:kora:,kora的年龄age:kora:,kora的住址 loc:kora:,                            # 为了保证这kora这三个属性能被路由到后端的同一个分片上,我们就需要指定hash_tag: "                  {::}",这样就避免读取数据的时候跨分片检索  distribution: ketama      # 分片的算法,有ketama(一致性hash)、module(取模)、random(随机)三种算法  auto_eject_hosts: false   # 是否在节点无法响应时自动从服务器列表中剔除,重新响应时自动加入服务器列表中  timeout: 400  redis: true               # 后端代理的是否为redis  servers:                  # 分片服务器列表   - 192.168.10.101:8888:1 server1   - 192.168.10.102:8888:1 server2

启动Twemproxy

1 ## 启动2 $  nutcracker -d -c/etc/nutcracker/nutcracker.yml -p /var/run/redisproxy.pid -o /var/log/redisproxy.log&3 ## 验证22122端口是否被监听4  $  netstat -alnut |grep 221225 tcp       0      0 127.0.0.1:22122             0.0.0.0:*                   LISTEN

SSDB Python Client

 社区提供多个Python Client,从社区项目活跃度及发布版本的数量角度考虑,选择pyssdb 0.1.2作为访问SSDB的driver。

 安装及使用参见:

SSDB性能压测

    压测详情参见: 

 

 

参考文档:

      

      

      

      

 

转载于:https://www.cnblogs.com/gaozhengwei/p/7101239.html

你可能感兴趣的文章
利用 VMware 技术构建超融合平台 第 1 部分
查看>>
ONOS系统架构之高可用实现方案的演进
查看>>
windows 2008 修改ilo密码
查看>>
Windows AD证书服务系列---证书的使用范围(3)
查看>>
ps、firewords在win78中无法直接拖入的问题解决方法
查看>>
iOS :undefined symbols for architecture x86_64
查看>>
Configuring Spring Bean and creating Spring Bea...
查看>>
shell数据清洗相关命令
查看>>
iOS编程修改系统音量
查看>>
搭建hadoop2
查看>>
关于ssh免密不成功解决方案之一
查看>>
详解命令-test
查看>>
列出制定目录所有子目录和文件
查看>>
改变figure大小存储图片(matlab)
查看>>
volatile 修饰数组
查看>>
Java FileInputStream
查看>>
“Freedom!”——英、美、加拒签互联网监管协议
查看>>
Bash, 双引号,单引号,感叹号
查看>>
Common Lisp菜鸟指南(译)
查看>>
(解决办法) UISearchBar 可以呼唤出键盘但无法输入
查看>>