[Codis] Codis3部署流程
#0 前言
最近因为项目需要,研究了一下传说中的Codis。下面跟大家分享Codis3的搭建流程
https://github.com/CodisLabs/codis
#1 Codis是什么
官方的介绍是:"Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务。"
#2 Codis3最新的改进
Codis 3.x 由以下组件组成:
Codis Server:基于 redis-3.2.8 分支开发。增加了额外的数据结构,以支持 slot 有关的操作以及数据迁移指令。具体的修改可以参考文档 redis 的修改。
Codis Proxy:客户端连接的 Redis 代理服务, 实现了 Redis 协议。 除部分命令不支持以外(不支持的命令列表),表现的和原生的 Redis 没有区别(就像 Twemproxy)。
- 对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例;
- 不同 codis-proxy 之间由 codis-dashboard 保证状态同步。
Codis Dashboard:集群管理工具,支持 codis-proxy、codis-server 的添加、删除,以及据迁移等操作。在集群状态发生改变时,codis-dashboard 维护集群下所有 codis-proxy 的状态的一致性。
- 对于同一个业务集群而言,同一个时刻 codis-dashboard 只能有 0个或者1个;
- 所有对集群的修改都必须通过 codis-dashboard 完成。
Codis Admin:集群管理的命令行工具。
- 可用于控制 codis-proxy、codis-dashboard 状态以及访问外部存储。
Codis FE:集群管理界面。
- 多个集群实例共享可以共享同一个前端展示页面;
- 通过配置文件管理后端 codis-dashboard 列表,配置文件可自动更新。
Storage:为集群状态提供外部存储。
- 提供 Namespace 概念,不同集群的会按照不同 product name 进行组织;
- 目前仅提供了 Zookeeper、Etcd、Fs 三种实现,但是提供了抽象的 interface 可自行扩展。
#3 Codis3不支持的指令
https://github.com/CodisLabs/codis/blob/release3.2/doc/unsupported_cmds.md
#4 部署Zookeeper
可以参考我上一篇关于Kafka集群搭建的教程 https://www.cnblogs.com/mrblue/p/10770651.html
#5 部署Codis3
1. 下载Codis。我直接下载的编译好的二进制。在下面地址选择一个合适的。
https://github.com/CodisLabs/codis/releases
2. 启动codis-dashoard。
1)生成codis-dashoard配置。./codis-dashboard --default-config > dashboard.toml
2)修改配置dashboard.toml。注意修改一下几项
#coordinator_name = "filesystem" #coordinator_addr = "/tmp/codis" coordinator_name = "zookeeper" coordinator_addr = "127.0.0.1:2181" coordinator_auth = ""# Set Codis Product Name/Auth. product_name = "codis-demo" product_auth = ""
3)启动 ./codis-dashboard --config=dashboard.toml
3. 启动codis-proxy。
1)生成codis-proxy配置。./codis-proxy --default-config > proxy.toml
2)修改配置proxy.toml。注意修改一下几项。 product_name和product_auth要和上面对得上
# Set Codis Product Name/Auth. product_name = "codis-demo" product_auth = ""# Set auth for client session # 1. product_auth is used for auth validation among codis-dashboard, # codis-proxy and codis-server. # 2. session_auth is different from product_auth, it requires clients # to issue AUTH <PASSWORD> before processing any other commands. session_auth = ""# Set bind address for admin(rpc), tcp only. admin_addr = "0.0.0.0:11080"# Set bind address for proxy, proto_type can be "tcp", "tcp4", "tcp6", "unix" or "unixpacket". proto_type = "tcp4" proxy_addr = "0.0.0.0:19000"
3)启动 ./codis-proxy --config=proxy.toml
4.启动codis-fe
1) 生成codis-fe配置。./codis-admin --dashboard-list --zookeeper=127.0.0.1:2181 > fe.json
2) 启动codis-fe。./codis-fe --ncpu=2 --log=logs/fe.log --log-level=WARN --dashboard-list=fe.json --listen=:10010
5. 启动codis-server
1)找一个redis.conf配置文件,注意要去掉requirepass项和关闭protected-mode no
#requirepass protected-mode no
2) 启动codis-server ./codis-server redis.conf
6. 添加codis-server。
1)打开fe网页进行配置 127.0.0.1:10010
2)添加一个组
3)添加codis-server
#6 测试Codis3
1. 这里端口要用19000,就是上面proxy配置的端口,而不是redis-server的6379。 执行命令./redis-benchmark -p 19000
2. fe上能看到请求状态
转载于:https://www.cnblogs.com/mrblue/p/10784247.html
[Codis] Codis3部署流程相关推荐
- Codis安装部署全架构
Codis安装部署全架构 Codis简介 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 ...
- Twitter的应急预案、部署流程
2019独角兽企业重金招聘Python工程师标准>>> <空中之城>事件 在构建Twitter的架构和系统时,我们是以周为单位来确定那些系统的性能的,我们能清楚地知道每个 ...
- activiti自己定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
注:(1)环境搭建:activiti自己定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 (2)创建流程模型:activiti自己定义流程之Spr ...
- Ironic 裸金属实例的部署流程
目录 文章目录 目录 逻辑架构 部署架构 前提条件 部署流程 iSCSI Deploy UML PXE Deploy Driver Direct Deploy UML IPA Deploy Drive ...
- Rails 应用使用 Capistrano2 部署流程
Capistrano 2 首次部署流程 修改 config/deploy.rb 和 config/deploy/production.rb bundle exec cap production dep ...
- activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 (2)创建流程模型:activiti自定义流程之Sprin ...
- Azure DevOps 中 Dapr项目自动部署流程实践
注:本文中主要讨论 .NET6.0项目在 k8s 中运行的 Dapr 的持续集成流程, 但实际上不是Dapr的项目部署到K8s也是相同流程,只是k8s的yaml配置文件有所不同 流程选择 基于 Dap ...
- 第5篇:Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程
接上一篇:第4篇:Flowable快速工作流脚手架Jsite_启动项目 https://blog.csdn.net/weixin_40816738/article/details/103388465 ...
- SNPE安装+Qualcomm高通AI神经网络处理SDK部署流程
Qualcomm高通AI神经网络处理SDK部署流程 系统要求 我们建议在专用机器上执行以下操作,以更好地了解 SDK 依赖关系: 安装 Ubuntu 18.04 (推荐),例如在虚拟机上. 安装pye ...
最新文章
- c语言aba字母塔,打印字母金字塔,昨晚看到某个帖子的题目
- linux回调函数的使用
- Ajax Control Toolkit 32个服务器端控件
- 【正一专栏】欧陆烽火——珍惜像伊布一样的男人!
- Hinton领衔谷歌大脑新研究,拯救被认成步枪的乌龟
- AMOS从零到基本操作入门(转载)
- 自己做量化交易软件(28)小白量化实战2--变红买入变绿卖出
- 扁平化组织和层级化组织
- SVN `Clean up`时报错如何处理
- ubuntu切换python版本解决语法不匹配问题(SyntaxError: invalid syntax)
- 关于深恶痛绝的file类的delete问题
- 英语口语练习五十五之英语委婉提建议
- 财报解读:硬件支撑思科增长,云平台何时能突围?
- MONKOVEL-安卓端免费的小说阅读器 源码分享
- 线上盲盒电商模式运营
- 题目 1180: 不容易系列
- 使用AppiumDesktop控制手机
- 长城会十周年:文厨用故事讲述它的“前世今生”
- python webkit内核_360浏览器使用meta标签强制使用指定webkit内核 - meta强制用极速模式...
- c++ grpc compress(deflate算法) demo编译