Overlord

Overlord是哔哩哔哩开发的缓存服务组件,可以帮助企业配置集群化的缓存服务,可以对庞大的集群数据缓存,让数据缓存更方便,您可以在软件管理自己的集群,可以使用memcache和redis协议编辑缓存服务,可以管理节点数据,可以监控远程数据,可以设置下发数据缓存方案,可以管理各节点连接方案,支持pxy到redis-cluster的节点连接,相对非cluster模式,多了对ASK和MOVED处理,支持pxy到redis节点的连接实现,负责写读数据,为企业配置缓存服务提供更多帮助!

Overlord软件功能

Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及实现管理功能,致力于提供自动化高可用的缓存服务解决方案。主要包括以下组件:

pxy:轻量高可用的缓存代理模块,支持memcache和redis的代理,相当于twempxy,不同在于支持redis-cluster及能将自己伪装为cluster模式。

platform:包含api、mesos framework&executor、集群节点任务管理job等。

GUI:web管理界面,通过dashboard可视化方便用于集群管理,包括创建删除、扩缩容、加减节点等。

anzi:redis-cluster的数据同步工具,可服务化与api进行配合工作。

en:redis-cluster的集群管理工具,可灵活的创建集群、迁移slot等。

Overlord软件特色

支持的功能

一、多种协议支持

我们支持memcache的两种协议:text和binary,支持redis的两种使用模式:纯代理和cluster。

因为B站不同业务对缓存的使用场景不同,memcache和redis的使用都非常广泛,且redis两种使用模式也分别都有。

对memcache binary的支持是我们打算后期业务都使用binary协议,因为相对text协议来说,最大的优势是支持pipeline,可以节省很多消耗。

虽然redis-cluster模式已经很成熟了,但相信还是有业务场景不想要冗余一倍内存,而只是单纯将redis当做一层缓存来使用。

在pxy的配置文件中,有cache_type配置项,可以配置为:memcache | memcache_binary | redis | redis_cluster

当使用redis-cluster模式时,pxy会将自己伪装为cluster的节点,可以支持cluster nodes和cluster slots命令,方便使用SDK如jedis的客户端无缝使用overlord-pxy。

二、哈希标签

我们支持哈希标签,默认为{}。与redis-cluster一致,且将这个特扩展到四种模式都支持。

三、固定连接数

我们将pxy与缓存节点之间的连接数作为配置node_connections,可以自定义连接数。为了充分节省和利用资源,建议将其配置为2。这个值是我们经过压测和线上尝试后的最佳实践。

四、代理模式下自动节点

pxy内设计了Pinger接口,且支持配置项ping_to_eject和ping_fail_limit,分别表示是否自动出节点和连续ping失败多少次后出。

缓存(不是存储,默认对一致要求较低)是可以被降级容错的,所以我们优先支持了故障节点自动出,快速恢复服务优先。当然,使用方也可以配置为关闭该功能。

Overlord教程

overlord-platform 使用指南

创建集群

1、填写名称、总容量(支持单位 G/M)、集群类型(推荐使用 Redis Cluster、版本、型号(支持定制)、分组,APPID 为选填内容。

2、填写完成后点击 立即创建 按钮,将会自动跳转至集群详情页。

查看集群详情

删除集群作前请务必解除 Appid 关联关系

查看 Appid 列表

1、查看与 Appid 有关联的集群,可通过 添加关联 按钮为当前 Appid 继续添加集群。

2、点击集群列表右侧到 解除关联 按钮,可将解除当前 Appid 和集群的关联关系。

3、点击 Appid 列表底部的 添加 Appid 按钮,可创建 Appid。

查看 Job 列表

上一篇 2022-11-28

相关推荐

  • Overlord

    Overlord是哔哩哔哩开发的缓存服务组件,可以帮助企业配置集群化的缓存服务,可以对庞大的集群数据缓存,让数据缓存更方便,您可以在软件管理自己的集群,可以使用memcache...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)