Codis的部署

文章目录

  • 安装 go
  • 安装 Codis
  • 安装 jdk
  • 安装 zookeeper
  • 启动 Codis,搭建集群

安装 go

  1. 在官网下载go的语言包
[root@server1 test]# tar zxf go1.8.linux-amd64.tar.gz 
[root@server1 test]# cd go/
[root@server1 go]# ls
api      blog             doc          LICENSE  pkg         src
AUTHORS  CONTRIBUTING.md  favicon.ico  misc     README.md   test
bin      CONTRIBUTORS     lib          PATENTS  robots.txt  VERSION
  1. 将解压后的源码包移动到/usr/local
    并将相关的软链接移动到/usr/bin
[root@server1 test]# mv go /usr/local/
[root@server1 test]# ls /usr/local/go/bin/
go  godoc  gofmt
[root@server1 test]# cp /usr/local/go/bin/* /usr/bin/
[root@server1 bin]# go version
go version go1.8 linux/amd64
  1. 添加环境变量
    GOROOT就是go的安装目录,codis编译的时候,会根据这个目录来找go。
    GOPATH就是codis的根目录,之后下载的时候会直接下载到这个目录。
[root@server1 bin]# vim /root/.bash_profile 
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/test/go
[root@server1 bin]# source /root/.bash_profile 
  1. 测试go语言
[root@server1 ~]# vim hello.go
[root@server1 ~]# go run hello.go 
hello,world
[root@server1 ~]# cat hello.go 
		package main
    import "fmt"

    func main(){
        fmt.Printf("hello,world\n")
 }

安装 Codis

  1. 安装相应的工具
[root@server1 test]# yum install git autoconf automake libtool -y
  1. 下载安装包
    也可以直接从官网下载源码包
[root@server1 test]# mkdir -p go/src/github.com/CodisLabs
[root@server1 test]# git clone https://github.com/CodisLabs/codis.git -b release3.2
  1. 解压
[root@server1 test]# tar zxf codis-3.2.2.tar.gz 
[root@server1 test]# cd codis-3.2.2/
[root@server1 codis-3.2.2]# ls
admin    config  Dockerfile  Godeps      MIT-LICENSE.txt  scripts  wandoujia_license.txt
ansible  deploy  example     kubernetes  pkg              vendor
cmd      doc     extern      Makefile    README.md        version
  1. 编译
[root@server1 codis-3.2.2]# mkdir -p $GOPATH/src/github.com/CodisLabs
[root@server1 test]# mv codis-3.2.2 $GOPATH/src/github.com/CodisLabs/codis
[root@server1 codis-3.2.2]# make
[root@server1 codis]# cd bin/
[root@server1 bin]# ls
assets       codis-dashboard  codis-ha     codis-server     redis-cli       version
codis-admin  codis-fe         codis-proxy  redis-benchmark  redis-sentinel
[root@server1 bin]# pwd
/test/go/src/github.com/CodisLabs/codis/bin

安装 jdk

[root@server1 test]# rpm -ivh jdk-8u121-linux-x64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_121-2000:1.8.0_121-fcs  ################################# [100%]
Unpacking JAR files...
	tools.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
	rt.jar...
	jsse.jar...
	charsets.jar...
	localedata.jar...
[root@server1 test]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

安装 zookeeper

  1. 下载并解压
[root@server1 test]# tar zxf apache-zookeeper-3.5.9-bin.tar.gz 
  1. 移动到用户级程序目录,并生成配置文件
[root@server1 test]# mv apache-zookeeper-3.5.9-bin /usr/local/zookeeper
[root@server1 test]# cd /usr/local/zookeeper
[root@server1 zookeeper]# cd conf/
[root@server1 conf]# cp zoo_sample.cfg zoo.cfg
[root@server1 conf]# vim zoo.cfg 

Codis的部署_第1张图片

  1. 创建dataDir
[root@server1 conf]# mkdir /tmp/zookeeper
[root@server1 conf]# cd /tmp/zookeeper
[root@server1 zookeeper]# vim myid
1
  1. 启动zk
[root@server1 bin]# pwd
/usr/local/zookeeper/bin
[root@server1 bin]# ./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

启动 Codis,搭建集群

  1. 启动dashboard
  • Codis Dashboard:集群管理工具,支持 codis-proxy、codis-server 的添加、删除,以及据迁移等操作。在集群状态发生改变时,codis-dashboard 维护集群下所有 codis-proxy 的状态的一致性。

    对于同一个业务集群而言,同一个时刻 codis-dashboard 只能有 0个或者1个;
    所有对集群的修改都必须通过 codis-dashboard 完成。

  • 修改配置文件,只是修改了IP地址

[root@server1 config]# pwd
/test/go/src/github.com/CodisLabs/codis/config
[root@server1 config]# vim dashboard.toml 

Codis的部署_第2张图片

启动成功

[root@server1 config]# ../admin/codis-dashboard-admin.sh start
/test/go/src/github.com/CodisLabs/codis/admin/../config/dashboard.toml
starting codis-dashboard ... 
  1. 启动Codis Proxy
  • Codis Proxy:客户端连接的 Redis 代理服务, 实现了 Redis 协议。 除部分命令不支持以外,表现的和原生的 Redis 没有区别(就像 Twemproxy)。

    对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例;
    不同 codis-proxy 之间由 codis-dashboard 保证状态同步。

  • 修改配置文件
    把0.0.0.0改为172.25.23.1

[root@server1 config]# vim proxy.toml 

Codis的部署_第3张图片

启动成功

[root@server1 config]# ../admin/codis-proxy-admin.sh start
/test/go/src/github.com/CodisLabs/codis/admin/../config/proxy.toml
starting codis-proxy ... 
[root@server1 config]# pwd
/test/go/src/github.com/CodisLabs/codis/config
  1. 启动Codis Server
  • Codis Server:基于 redis-3.2.8 分支开发。增加了额外的数据结构,以支持 slot 有关的操作以及数据迁移指令。
[root@server1 admin]# ./codis-server-admin.sh start
/test/go/src/github.com/CodisLabs/codis/admin/../config/redis.conf
starting codis-server ... 
  1. 启动Codis FE
  • Codis FE:集群管理界面。

    多个集群实例共享可以共享同一个前端展示页面;
    通过配置文件管理后端 codis-dashboard 列表,配置文件可自动更新。

[root@server1 admin]# ./codis-fe-admin.sh start

starting codis-fe ... 
  1. 检查是否启动成功
[root@server1 log]# netstat -antuple | grep codis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      0          35543      5329/codis-server 1 
tcp        0      0 172.25.23.1:18080       0.0.0.0:*               LISTEN      0          31709      4654/codis-dashboar 
tcp        0      0 172.25.23.1:55762       172.25.23.1:18080       ESTABLISHED 0          36063      5343/codis-fe       
tcp        0      0 127.0.0.1:55728         127.0.0.1:2181          ESTABLISHED 0          31705      4654/codis-dashboar 
tcp        0      0 172.25.23.1:18080       172.25.23.1:55762       ESTABLISHED 0          36064      4654/codis-dashboar 
tcp6       0      0 :::9090                 :::*                    LISTEN      0          35555      5343/codis-fe       
tcp6       0      0 172.25.23.1:9090        172.25.23.250:59618     ESTABLISHED 0          36059      5343/codis-fe       
tcp6       0      0 172.25.23.1:9090        172.25.23.250:59616     ESTABLISHED 0          36057      5343/codis-fe       

Codis的部署_第4张图片

  1. 通过fe添加Group

Group就是一主一从的环境,当然也可以一主多从。
Codis的部署_第5张图片

  1. 通过fe初始化slot

新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,如下图所示,点击此按钮,我们即快速完成了一个集群的搭建。
Codis的部署_第6张图片Codis的部署_第7张图片

你可能感兴趣的:(企业实战,redis,linux)