接纳Codis搭建redis集群服务

点击迅速转移应用,接下去就是只需要填写多少个表单参数即可,这里以github上一个开源H5游戏2048
为例,生成一个经文的2048游玩应用.

三. 豌豆荚Codis

优点:

  • codis-proxy基于GO和C语言,并发处理能力强大
  • 后端基于slot概念协助灵活,对用户透明的扩容和缩容操作,甚至一键式auto
    rebalance
  • 遵照zookeeper提供了高可用的codis-proxy代理服务
  • 集群管理工具丰盛:页面和指令行工具集,如:redis-port可以将老集群(redis单机或twemproxy集群)中数量便宜的搬迁导入至Codis

一体化架构

Codis全体架构

Codis 由四有些构成:

  • Codis Proxy (codis-proxy)
    codis-proxy 是客户端连接的 Redis 代理服务, codis-proxy 本身实现了
    Redis 协议, 表现得和一个原生的 Redis 没什么区别 (就像 Twemproxy),
    对于一个政工以来, 可以配备多少个 codis-proxy, codis-proxy
    本身是无状态的.
  • Codis Manager (codis-config)
    codis-config 是 Codis 的管理工具, 帮忙包括, 添加/删除 Redis 节点,
    添加/删除 Proxy 节点, 发起数据迁移等操作. codis-config
    本身还自带了一个 http server, 会启动一个 dashboard,
    用户可以从来在浏览器上考察 Codis 集群的运作状态.
  • Codis Redis (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.

比方期望有更简便易行的拜会情势和更高的安澜:可以动用搭建HAProxy,然则会更加扩展延迟。

安装&管理集群
留意听从如下顺序部署启动集群

  1. 启动 dashboard *, 执行 ../bin/codis-config dashboard,
    该命令会启动 dashboard *
  2. 开端化 slots , 执行 ../bin/codis-config slot
    init,该命令会在zookeeper上创建slot相关音讯
  3. 启航 Codis Redis , 和官方的Redis Server参数一样
  4. 加上 Redis Server Group , 每一个 Server Group 作为一个 Redis
    服务器组存在, 只同意有一个 master, 可以有五个 slave, group id
    仅帮忙胜出等于1的平头
    $ ../bin/codis-config server -h usage:
    codis-config server list
    codis-config server add <group_id> <redis_addr>
    <role>
    codis-config server remove <group_id> <redis_addr>
    codis-config server promote <group_id>
    <redis_addr>
    codis-config server add-group <group_id>
    codis-config server remove-group <group_id>
    如: 添加多个 server group, 每个 group 有多少个 redis
    实例,group的id分别为1和2, redis实例为一主一从。
    加上一个group,group的id为1, 并添加一个redis master到该group
    $ ../bin/codis-config server add 1 localhost:6379 master
    添加一个redis slave到该group
    $ ../bin/codis-config server add 1 localhost:6380 slave
    类似的,再添加group,group的id为2
    $ ../bin/codis-config server add 2 localhost:6479 master
    $ ../bin/codis-config server add 2 localhost:6479 slave
  5. 安装 server group 服务的 slot 范围 Codis 接纳 Pre-sharding
    的技能来促成多少的分片, 默认分成 1024 个 slots (0-1023),
    对于每个key来说, 通过以下公式确定所属的 Slot Id : SlotId =
    crc32(key) % 1024 每一个 slot 都会有一个特定的 server group id
    来代表这多少个 slot 的数目由哪位 server group 来提供.
    $ ../bin/codis-config slot -h
    usage:
    codis-config slot init
    codis-config slot info <slot_id>
    codis-config slot set <slot_id> <group_id>
    <status>
    codis-config slot range-set <slot_from> <slot_to>
    <group_id> <status>
    codis-config slot migrate <slot_from> <slot_to>
    <group_id> [–delay=<delay_time_in_ms>]
    如:
    安装编号为[0, 511]的 slot 由 server group 1 提供劳动, 编号
    [512, 1023] 的 slot 由 server group 2 提供劳务
    $ ../bin/codis-config slot range-set 0 511 1 online
    $ ../bin/codis-config slot range-set 512 1023 2 online
  6. 启动 codis-proxy
    ../bin/codis-proxy -c config.ini -L ./log/proxy.log –cpu=8
    –addr=0.0.0.0:19000 –http-addr=0.0.0.0:11000
    刚启航的 codis-proxy 默认是处于 offline状态的, 然后安装 proxy 为
    online 状态, 只有处于 online 状态的 proxy 才会对外提供劳务
    ../bin/codis-config -c config.ini proxy online <proxy_name>
    <—- proxy的id, 如 proxy_1
  7. 开辟浏览器
    http://localhost:18087/admin
    现行得以在浏览器里面完成各个操作了, 玩得心满意足

性能
8 core Xeon 2.10GHz, 多线程的 benchmark, 单 proxy 的 ops 是 12w. 而且
proxy 是足以动态水平扩张的, 理论上的习性瓶颈应该是百万级此外

接下去自己来呈现怎么样在三分钟以内生成一个App

二. redis集群选型

正是出于单机redis引擎有着如此的问题,所以,基本每个互联网集团都有和好的redis集群化方案。

  • 在redis客户端lib中实现数量的分片并基本部署redis实例
    亮点:简单,性能损耗小
    缺陷:扩容方案复杂
  • 集群化候选方案

1、NetFlix对Dynamo的开源通用实现Dynomite
Dynomite是NetFlix对Amazon分布式存储引擎Dynamo的一个开源通用实现,使用C/C++语言编写、以代办的主意实现的Redis缓存集群方案。Dynomite不仅可以将依据内存的Redis和Memcached打造成分布式数据库,还帮忙持久化的MySQL、Berkeley(Berkeley)DB、LevelDB等数据库,并有着简易、高效、匡助跨数据主题的数据复制等优点。Dynomite的最后目标是提供数据库存储引擎无法提供的简约、高效、跨数据核心的数码复制效用。Dynomite服从Apache
License
2.0开源协议公布,更多关于Dynomite的音信请查看NetFlix技术博客对Dynomite的介绍。
2、Twitter的Redis/Memcached代理服务Twemproxy
Twemproxy是一个施用C语言编写、以代办的不二法门贯彻的、轻量级的Redis代理服务器,它经过引入一个代理层,将应用程序后端的多台Redis实例举办合并管理,使应用程序只需要在Twemproxy上开展操作,而不用关爱后边具体有些许个诚实的Redis或Memcached实例,从而实现了依据Redis和Memcached的集群服务。当某个节点宕掉时,Twemproxy可以自行将它从集群中删去,而当它过来服务时,Twemproxy也会自行连接。由于是代理,所以Twemproxy会有细小的性能损失。遵照Redis作者的测试结果,在大部气象下,Twemproxy的特性异常不错,同直接操作Redis相比较,最多唯有20%的性能损失。Twemproxy遵从Apache
License
2.0开源协议发表,更多关于Twemproxy的音信请登录其在GitHub的主页查看。
3、豌豆荚的 Redis 集群解决方案Codis
Codis是豌豆荚使用Go和C语言开发、以代办的不二法门实现的一个Redis分布式集群解决方案,且完全匹配Twemproxy。Twemproxy对于上一层的使用来说,
连接Codis
Proxy(Redis代理服务)和连接原生的Redis服务器并未明了的区分,上一层应用能够像使用单机的
Redis一样对待。Codis底层会处理请求的转折、不停机的数码迁移等工作,
所有底层的百分之百处理,
对于客户端的话是透明的。不问可知,能够大概的以为后台连接的是一个内存无限大的Redis服务。Codis听从MIT开源协议宣布,更多关于Codis的音讯请登录其在GitHub的主页查看。
除此以外,还有一部分未开源的化解方案,比如博客园、百度、天猫、腾讯等的Redis集群方案。在Redis官方正式推出可用来生产环境的集群方案前,以上二种方案是分外值得考虑在生养条件使用的方案。

Paste_Image.png

一. 接纳场景

redis 作为数据结构存储引擎,有着许多独到之处

  • 高性能
    单机引擎可以达成5-10W qps
  • 数据结构系数,襄助高速支付工作
    string,list,set,sorted set, hashes

问题:

  • 储存容量受限单机最大容量即为单机内存最大容量
  • 单机数据的持久化依赖aof和rdb机制,倘诺机器整个down掉,服务不可用

打开工具首页
http://xbrowser.me/appbuilder

Paste_Image.png

过去多少个月我的方方面面生机勃勃都在一款手机浏览器产品上,至于为什么要做这么一款产品,请参见产品页面
X浏览器,下边装有演说。前天牵线一下自身在那些产品过程中的一个副产品,对于一个懒散的程序员来说,要不就不做事,要不就便捷的劳作,防止机械的重复劳动。由于常常要编译构建浏览器代码,并且有时需要在编译的时候改变程序配置参数,在这种情景下自己就独自为这个浏览器产品写了一套自动构建和布置的工具用来满足每一日构建和测试要求。随着H5移动应用的普及,我逐渐的意识有些H5应用的感受越来越接近原生应用,于是自己在想:现在有那么多的前端开发人士,那么多的H5应用和游乐开发者,是不是足以有一个工具把那么些美观的H5应用和玩耍包装成App?甚至可以的前端开发者也足以把H5形式的App或娱乐发布到使用市场?不管这是不是一个”伪命题”或者”伪需求”,对于程序员最大的优势就是她可以把温馨的想法兑现出来。于是说干就干,就有了这样一款用来把h5打包成选用的在线工具AppBuilder

表单参数表达

  • 利用ID :
    一个唯一的id,可以由字母,数字,下划线组成,myapp,myapp123,app_test
    等都是卓有功效的appid
  • 使用名称: 彰显在手机桌面的使用名称,可以是中文或英文
  • 行使项目:
    选取采纳或娱乐,即使采取使用项目为一日游,内部框架会自行缓存H5游戏,对于单机的H5游戏很符合,只需要在率先次利用的时候下载资源,将来没有网络的动静下还能玩。
  • 屏幕方向: 应用或者游戏在什么样的屏幕状态下显得更加合适.
  • 上传应用图标: 你可以采纳一个您喜爱的图标作为利用的桌面图标.
  • 采取url: 一个使得的H5应用或娱乐的网址。
  • 邮件地址: 构建完了会把最后生成的apk链接发送到那一个邮件

点击按钮”起头创办应用”,任务就会付给到任务队列准备初步构建。你可以而且提交五个构建任务,任务会以队列的办法开展排队,依次举行构建。

Paste_Image.png

您可以在线等待构建形成后下载,或则等待构建完成后的邮件布告。

Paste_Image.png

你可以在“最新应用”
的领航栏内找到你创设的应用,所有其他用户创建的利用都会临时保留在此处(由于服务器空间有限,那里不提供长时间保留服务,会定期删除)。

Paste_Image.png

接下去你就足以下载生成的APK到你的手机上显得你的创作了,
整个过程假诺顺利的话不会超过三秒钟 , enjoy it !

Paste_Image.png

Paste_Image.png

推介著作:
惦记自己要丢弃的成品效用-“无需root一键翻墙”

发表评论

电子邮件地址不会被公开。 必填项已用*标注