1.检查服务器ipv6模块是否打开,如果打开需要禁用ipv6,防止codis-dashbord连接zookeeper失败。

因为不确定codis-dashbord服务连接zookeeper使用ipv4模块还是ipv6模块,所以需要将部署zookeeper服务的服务器与部署codis-dashbord服务的服务器的ipv6模块全部禁用。

#方法一:
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
#方法二:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

如果zookeeper服务在ipv6禁用前就已经启用,那么需要在禁用ipv6模块后重新启动zookeeper服务。

2.启动codis-server服务。

&nbspcodis-server是 codis 项目维护的一个 Redis 分支, 基于 2.8.13 开发, 增加了 slot 的支持和原子的数据迁移指令. codis 上层的 codis-proxy 和 codis-config 仅仅能和这个版本号的 Redis 交互才干正常执行.

#修改codis-server配置文件,codis-server配置文件与redis类似。
vim /data/apps/config/codis/6379.ini
#启动codis-server进程
/data/apps/opt/codis/bin/codis-server /data/apps/config/codis/6379.ini
#检查codis进程是否正常启动
ps aux|grep codis

3.启动codis-dashbord服务。

&nbspcodis 的管理工具,支持添加/删除 Redis 节点、添加/删除 Proxy 节点,发起数据迁移等操作。codis-config 本身还自带了一个 http server,会启动一个 dashboard,用户可以直接在浏览器上观察 Codis 集群的运行状态。

#修改codis-dashbord配置文件
vim /data/apps/config/codis/config.ini
##### dashboard and proxies
product=loadtest #集群名
dashboard_addr=codis1:18087 #dashbord地址
password= #连接zookeeper密码
coordinator=zookeeper
zk=zk1:2181 #zookeeperip及端口
##### Properties below are only for proxies
backend_ping_period=5
session_max_timeout=1800
session_max_bufsize=131072
session_max_pipeline=1024
zk_session_timeout=30000
##### must be different for each proxy
proxy_id=codis1 #同一集群proxy_id不能冲突 #启动codis-dashbord
/data/apps/opt/codis/start-dashboard.sh start #start-dashboard.sh
#!/bin/bash
exec /data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini \
-L /data/apps/log/codis/dashboard.log \
dashboard \
--addr=codis1:18087 \ #需要配置与config.ini配置文件相同且正确
--http-log=/data/apps/log/codis/requests.log &>/dev/null &
echo $! > /data/apps/var/codis/dashboard.pid #检查codis-dashbord服务是否启动正常
ps aux|grep codis

4.将codis-server加入codis集群并确立角色

&nbsp通过codis-dashbord向zookeeper集群中添加群组信息,每个group作为一个redis组存在,只允许有一个master允许有多个slave,group id仅支持大于1的整数。

/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini server add 1 codis1:6379 master
{
"msg": "OK",
"ret": 0
} /data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini server add 1 codis2:6379 slave
{
"msg": "OK",
"ret": 0
}

集群创建成功后可以通过/data/apps/opt/codis/bin/codis-cli -h codis1 -p 6379 info命令来查看集群信息。

5.slot初始化

只用将slot初始化后才能进行solt分区。

/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot init -f

6.slot分区

设置server group服务的slot范围,如slot[0-511]由server group1提供服务,slot[512-1023]由server group2提供服务。

/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 0 511 1 online

/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 512 1023 2 online

7.启动codis-proxy服务

&nbsp注意:codis服务启动有严格的顺序要求,如果顺序错乱可能需要清除zookeeper数据重新初始化服务。

&nbspcodis-proxy是client连接的codis-server的代理服务,事实上我们使用codis时连接的为codis—proxy端口,codis-proxy通过内部机制将数据写入各个codis-server group。

/data/apps/opt/codis/start-proxy.sh start
{
"msg": "OK",
"ret": 0
}

8.修改codis-proxy状态

&nbspcodis-proxy服务默认启动后,处于offline状态,只有处于online状态的codis-proxy才能对外提供服务。

/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini proxy online codis1

9.测试codis-proxy写入与读取数据是否正常

#写入数据
/data/apps/opt/codis/bin/codis-cli -h 127.0.0.1 -p 19000 set abc 123
OK #读取数据
/data/apps/opt/codis/bin/codis-cli -h 127.0.0.1 -p 19000 get abc
"123"

如果以上都没有问题的话,表示codis初始化完成。

如果出现失败的情况,需要查看日志确定是不是zookeeper写入错误产生脏数据,如果出现这种情况的话,执行以下操作可以解决。

/data/apps/opt/zookeeper/bin/zkCli.sh -server zk1
[zk: zk1:2181(CONNECTED) 0] rmr /zk/codis

slot分区

#三组
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 0 340 1 online
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 341 681 2 online
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 682 1023 3 online #四组
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 0 255 1 online
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 256 511 2 online
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 512 767 3 online
/data/apps/opt/codis/bin/codis-config -c /data/apps/config/codis/config.ini slot range-set 768 1023 4 online

codis服务部署前的操作及初始化的更多相关文章

  1. Oracle中序列的操作以及使用前对序列的初始化

    Oracle中序列的操作以及使用前对序列的初始化   一 创建序列 create sequence myseq start with 1 increment by 1 nomaxvalue minva ...

  2. Nginx部署前后端分离服务

    飘过... 一,安装Nginx 二,配置nginx 一般nginx配置文件在etc目录下 另,如何找nginx.conf配置文件: 在前后端分离端项目里,前端的代码会被打包成为纯静态文件.使用 Ngi ...

  3. 在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_102 这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广 ...

  4. Redis__WindowsServer主从服务部署及调用实例

    本文转自:http://www.cnblogs.com/gossip/p/4898653.html 一.先谈谈单个Redis服务的安装         使用的redis是2.8.17版本,从官网下载解 ...

  5. 使用kubeadm安装kubernetes/部署前准备/flannel网络插件/镜像下载/

    本文内容参考<kuberneters进阶实战>/马哥的新书/推荐 部署前的准备 主机名称解析 分布式系统环境中的多主机通信通常基于主机名称进行,这在IP地址存在变化的可能性时为主机提供了固 ...

  6. docker swarm overlay stack 服务部署记录

    项目xxx(后端),xxx-ui前端(前后端分离的项目) 依赖mysql,elasticsearch.分别制作了四个镜像来做这件事.希望可以制作跨主机的部署,使用了swarm,以下是学习记录. 参考 ...

  7. Redis主从服务部署

    Redis__WindowsServer主从服务部署及调用实例       一.先谈谈单个Redis服务的安装         使用的redis是2.8.17版本,从官网下载解压缩后文件内容为:   ...

  8. Gitlab安装部署及基础操作

      环境说明 系统版本 CentOS 7.2 x86_64(较新版本的gitlab集成了更多功能,顺利运行起来的硬件要求较高,这里给了3G内存) 软件版本 gitlab-ce-10.8.4 GitLa ...

  9. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

随机推荐

  1. lrzsz的安装与配置

    1)下载http://freshmeat.sourceforge.net/projects/lrzsz/ 2)tar zxvf lrzsz-0.12.20.tar.gz 3)mv lrzsz-0.12 ...

  2. Web标准:七、横向导航菜单

    Web标准:七.横向导航菜单 知识点: 1.横向列表菜单 2.用图片美化的横向导航 3.css Sprites   1)横向列表菜单 可以在第四节课的基础上来实现横向导航菜单,只要给li一个float ...

  3. Jmeter响应数据为乱码的处理

    jmeter新手,跟着教程,发现响应的数据为乱码,百度到两种方法: 方法一:在相应节点的下方,添加后置处理器-BeanShell PostProcessor 添加一句代码:prev.setDataEn ...

  4. css position定位详解

    position:static 默认方式: position:relative 相对定位,相对于原有位置进行移动,并且保留它在文件流中的占位: position:absolute 绝对定位,相对于最近 ...

  5. LuoguP1126 机器人搬重物(BFS)

    题目链接:https://www.luogu.org/problemnew/show/P1126 思路:很不错的搜索题,用BFS,虐了我1天多才A掉 QAQ,细节很多. 1.每个状态包含行.列.方向. ...

  6. 【英宝通Unity4.0公开课学习 】(五)47讲到75讲

    不知不觉今天都已经看了快30讲了,虽然很想快马加鞭地将后面的内容看完,但为了学习的质量,还是挺下来写一篇blog :) 这两天有些昏昏沉沉的,但感觉生活还安排得不错,原因找去找来觉得是没怎么开窗透气. ...

  7. 11-简单解释spingmvc项目的结构

    可以简单的理解为下面这样子:

  8. 5-分西瓜差最小(背包 || dfs)

    /*   zb立刻下定决心买了一堆西瓜.当他准备把西瓜送给C小加和never的时候,遇到了一个难题,never和C小加不在一块住,只能把西瓜分成两堆给他们,为了对每个人都公平,他想让两堆的重量之差最小 ...

  9. linux的ssh服务

    1.检查是否安装ssh > rpm -qa|grep ssh 2.安装ssh服务 > yum install ssh 配置 /etc/ssh/sshd_config 端口 22 3.启动s ...

  10. mysql中float、double、decimal三种类型,以及数值产生误差的原因

    单精度浮点数用4字节(32bit)表示浮点数,采用IEEE754标准的计算机浮点数,在内部是用二进制表示的,如:7.22用32位二进制是表示不下的,所以就导致不精确了,存取会出现误差. mysql中f ...