当前位置:Gxlcms > 数据库问题 > SSDB分布式部署

SSDB分布式部署

时间:2021-07-01 10:21:17 帮助过:31人阅读

wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip 2 unzip master 3 cd ssdb-master 4 make 5 # 将安装在 /usr/local/ssdb 目录下 6 sudo make install 7 #/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: 8889
10 replication:
11         binlog: yes
12                 capacity: 20000000
13         # Limit sync speed to *MB/s, -1: no limit
14         sync_speed: -1
15         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_1
19                 # sync|mirror, default is sync
20                 type: mirror
21                 host: 192.168.10.102
22                 port: 8888
23                 #auth: password
24 logger:
25         level: debug
26         output: log.txt #log保存位置
27         rotate:
28                 size: 1000000000
29 leveldb:
30         # in MB
31         cache_size: 500
32         # in KB
33         block_size: 32
34         # in MB
35         write_buffer_size: 64
36         # in MB
37         compaction_speed: 200
38         # yes|no
39         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 8888
10  
11 # 停止 ssdb-server
12 ./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 ssdb
11 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 install
10 ## 安装Twemproxy
11 $  git clone https://github.com/twitter/twemproxy.git
12 $  cd  twemproxy/
13 $  autoreconf -fvi
14 $  ./configure
15 $  make && make install
16 ## 将Twemproxy的配置文件放置在/etc/下、
17 $  mkdir /etc/nutcracker
18 $  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 22122
5 tcp       0      0 127.0.0.1:22122             0.0.0.0:*                   LISTEN

SSDB Python Client

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

 安装及使用参见:https://github.com/ifduyue/pyssdb

SSDB性能压测

    压测详情参见: http://www.wjxfpf.com/2015/10/601347.html

 

 

参考文档:

      http://ssdb.io/zh_cn/

      http://www.wzxue.com/ssdb/

      http://www.ideawu.net/blog/archives/765.html?cp=1#comments

      http://quenlang.blog.51cto.com/4813803/1635778

 

SSDB分布式部署

标签:从服务器   and   ldb   sudo   config   网络   lis   beta   als   

人气教程排行