zoukankan      html  css  js  c++  java
  • 豌豆荚Redis集群方案:Codis

    Codis简介

    Codis是一个分布式Redis解决方案,对于上层的应用来说,连接到CodisProxy和连接原生的RedisServer没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面的客户端来说是透明的,可以简单的认为后边连接的是一个内存无限大的Redis服务。

    Github: https://github.com/CodisLabs/codis

    特性:

    • 自动平衡

    • 使用非常简单

    • 图形化的面板和管理工具

    • 支持绝大多数 Redis 命令,完全兼容 twemproxy

    • 支持 Redis 原生客户端

    • 安全而且透明的数据移植,可根据需要轻松添加和删除节点

    • 提供命令行接口

    • RESTful APIs

    Codis架构

    Codis由四部分组成。

    • CodisProxy(codis-proxy)

    codis-proxy是客户端连接的Redis代理服务,codis-proxy本身实现了Redis协议,表现得和一个原生的Redis没什么区别(就像Twemproxy),对于一个业务来说,可以部署多个codis-proxy,codis-proxy本身是无状态的。

    • CodisManager(codis-config)

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

    • CodisRedis(codis-server)

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

    • ZooKeeper

    Codis依赖ZooKeeper来存放数据路由表和codis-proxy节点的元信息,codis-config发起的命令都会通过ZooKeeper同步到各个存活的codis-proxy。

    Codis支持按照Namespace区分不同的产品,拥有不同的productname的产品,各项配置都不会冲突。

    目前Codis已经是稳定阶段,豌豆荚及大部分企业已经在使用该解决方案。

    整体架构图:

    image

    对比Twemproxy, Redis Cluster

    Function Codis Twemproxy Redis Cluster
    rowresharding without restarting cluster Yes No Yes
    rowreshardingpipeline Yes Yes No
    hash tags for multi-key operations Yes Yes Yes
    multi-key operations while resharding Yes - No(details)
    Redis clients supporting Any clients Any clients Clients have to support cluster protocol

    部分截图

    Proxy:

    image

    Slots:

    image

    Group:

    image

    Sentinel:

    image

    推荐阅读

    面经:史上最全Java多线程面试题及答案

    面经:史上最全阿里高级Java面试题

    面经:史上最全Spring面试题

    教程:最全Spring Boot全套视频教程

    书籍:进阶Java架构师必看的15本书

    工具:推荐一款在线创作流程图、思维导图软件

    分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

  • 相关阅读:
    C#学习-多态
    C#学习-子类的初始化顺序
    C#学习-面向对象
    Python数据类型知识点全解
    python 复制图片到剪贴板
    pyperclip
    pyautogui
    多线程代码案例
    常用正则表达式最强整理(速查手册)
    python os
  • 原文地址:https://www.cnblogs.com/java-stack/p/11952467.html
Copyright © 2011-2022 走看看