CODIS3 x集群 之 存储集群搭建全过程

本文详细介绍了CODIS3.x集群的搭建过程,包括总体架构、部署流程和注意事项。涉及组件包括Codis Server、Codis Proxy、Redis Sentinel、Codis Dashboard、 Codis Admin、Codis FE等。在部署流程中,讲解了安装ZK、编译Codis、启动各个组件的具体步骤,以及如何配置Codis-server、 Codis-proxy和Redis-sentinel。最后提到了密码配置以增强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       

作者:邹祁峰
邮箱:Qifeng.zou.job@hotmail.com
博客:http://blog.youkuaiyun.com/qifengzou
日期:2017.06.07
转载请注明来自”祁峰”的优快云博客

Codis3.x有如下特点:

 

1.最新 release 版本为 codis-3.2,codis-server 基于 redis-3.2.8

   

2.支持 slot 同步迁移、异步迁移和并发迁移,对 key 大小无任何限制,迁移性能大幅度提升

   

3.相比 2.0:重构了整个集群组件通信方式,codis-proxy 与 zookeeper 实现了解耦,废弃了codis-config 等

   

4.元数据存储支持 etcd/zookeeper/filesystem 等,可自行扩展支持新的存储,集群正常运行期间,即便元存储故障也不再影响 codis 集群,大大提升 codis-proxy 稳定性

   

5.对 codis-proxy 进行了大量性能优化,通过控制GC频率、减少对象创建、内存预分配、引入 cgo、jemalloc 等,使其吞吐还是延迟,都已达到 codis 项目中最佳

   

6.proxy 实现 select 命令,支持多 DB

   

7.proxy 支持读写分离、优先读同 IP/同 DC 下副本功能

   

8.基于 redis-sentinel 实现主备自动切换

   

9.实现动态 pipeline 缓存区(减少内存分配以及所引起的 GC 问题)

   

10.proxy 支持通过 HTTP 请求实时获取 runtime metrics,便于监控、运维

   

11.支持通过 influxdb 和 statsd 采集 proxy metrics

   

12.slot auto rebalance 算法从 2.0 的基于 max memory policy 变更成基于 group 下 slot 数量

   

13.提供了更加友好的 dashboard 和 fe 界面,新增了很多按钮、跳转链接、错误状态等,有利于快速发现、处理集群故障

   

14.新增 SLOTSSCAN 指令,便于获取集群各个 slot 下的所有 key

   

15.codis-proxy 与 codis-dashbaord 支持 docker 部署

1 大体架构


1.1 总体架构

系统架构


Codis 3.x 由以下组件组成:

 

1.Codis Server:基于 redis-3.2.8 分支开发。增加了额外的数据结构,以支持 slot 有关的操作以及数据迁移指令。具体的修改可以参考文档 redis 的修改。

   

2.Codis Proxy:客户端连接的 Redis 代理服务, 实现了 Redis 协议。 除部分命令不支持以外(不支持的命令列表),表现的和原生的 Redis 没有区别(就像 Twemproxy)。
   - 对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例;
   - 不同 codis-proxy 之间由 codis-dashboard 保证状态同步。

   

3.Redis sentinel:Redis官方推荐的高可用性(HA)解决方案。它可以实现对Redis的监控、通知、自动故障转移。如果Master不能工作,则会自动启动故障转移进程,将其中的一个Slave提升为Master,其他的Slave重新设置新的Master服务。

   

4.Codis Dashboard:集群管理工具,支持 codis-proxy、codis-server 的添加、删除,以及据迁移等操作。在集群状态发生改变时,codis-dashboard 维护集群下所有 codis-proxy 的状态的一致性。
   - 对于同一个业务集群而言,同一个时刻 codis-dashboard 只能有 0个或者1个;
   - 所有对集群的修改都必须通过 codis-dashboard 完成。

   

5.Codis Admin:集群管理的命令行工具。
    - 可用于控制 codis-proxy、codis-dashboard 状态以及访问外部存储。

   

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

   

7.Storage:为集群状态提供外部存储。
   - 提供namespace概念,不同集群的会按照不同product name进行组织;
   - 目前仅提供了zookeeper、etcd、filesystem三种实现,但是提供了抽象的 interface 可自行扩展。

1.2 部署规划

当前本人拥有如下14台机器,其相关信息及部署规划如下:[备注:实际部署过程中可以复用机器 降低成本]

                                                                                                                       
序号 IP 主机名 部署程序
01 192.168.1.11 WebServer-11 codis-server:(6379&6380)
02 192.168.1.12 WebServer-12 codis-server:(6379&6380)
03 192.168.1.13 WebServer-13 codis-server:(6379&6380)
04 192.168.1.14 WebServer-14 codis-server:(6379&6380)
05 192.168.1.15 WebServer-15 codis-server:(6379&6380)
06 192.168.1.21 WebServer-21 codis-proxy:19000
07 192.168.1.22 WebServer-22 codis-proxy:19000
08 192.168.1.31 WebServer-31 codis-dashborad:18080、codis-fe:18090
09 192.168.1.41 WebServer-41 redis-sentinel:26379
10 192.168.1.42 WebServer-42 redis-sentinel:26379
11 192.168.1.43 WebServer-43 redis-sentinel:26379
12 192.168.1.51 WebServer-51 zookeeper:2181
13 192.168.1.52 WebServer-52 zookeeper:2181
14 192.168.1.53 WebServer-53 zookeeper:2181

2 部署流程


2.1 安装ZK

作用:用于存放数据路由表。
描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值