您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

分布式缓存平台建设实践

时间:2023-02-28 15:00:08  来源:微信公众号  作者: 匠心独运维妙维效
随着部署数量的加大,面临着资源快速供给、规范化部署、软件版本统一、集中运维管理等诸多挑战。为此,G行启动了分布式缓存平台建设项目,旨在打造一个具备快速部署、集中管理、弹性伸缩、服务高可用的缓存服务化平台。 ​一、引言

redis作为一款简洁、高效的键值型内存数据库,2015年在G行引入,应用于多个业务系统,为高频次、大并发交易提供了有效的热点数据访问加速方案。

随着部署数量的加大,面临着资源快速供给、规范化部署、软件版本统一、集中运维管理等诸多挑战。为此,G行启动了分布式缓存平台建设项目,旨在打造一个具备快速部署、集中管理、弹性伸缩、服务高可用的缓存服务化平台。

二、建设目标 01快速部署​

基于G行全栈云IaaS层敏捷特性,通过对计算、存储、网络等资源的统一调度编排,实现缓存服务的快速部署和弹性伸缩,推出分布式缓存PaaS服务,助力应用系统敏捷开发。

02服务化输出​

通过统一控制台,实现Redis服务跨云集中管理;提供运行状态分析、慢查询分析、内存分析、统计数据展示、日常巡检等功能,协助运维人员进行缓存性能优化、故障快速定位和日常运维管理。实现运维向运营转型,提升精细化管理水平和服务化输出能力。

03服务高可用​

将Redis高可用架构与全栈云架构深度融合,感知底层架构,打造可用区容灾能力,实现故障快速感知和自动切换,提升Redis服务的高可用性和可维护性。

三、设计与实现 1功能架构设计

分布式缓存平台定位于服务开发、测试、运维人员,满足用户各种场景的使用需求:支持开发和测试人员自助申请服务资源,查看服务运行状态和资源使用情况,定位性能瓶颈;支持运维人员实现缓存全生命周期管理,包括配置变更、故障定位与处置、性能分析等;同时,支持对缓存服务整体情况进行多维度展示。基于此,分布式缓存平台包括七大功能模块:

门户模块:展示业务系统及纳管服务的整体情况,包括系统健康度、告警汇总、重点监控等内容。

监控模块:提供完善的监控告警能力,包括:将采集的运行指标进行多维度分析展示;支持用户自定义监控项及调整阈值;支持差异化告警策略的制定;支持历史告警详情查看。

运维和管理模块:将常规运维操作自动化,通过平台页面进行标准化操作,最大限度减少手工命令输入,预防误操作和减少不当操作的风险。

审计和日志模块:提供平台用户登录次数统计及操作记录审计功能。

统计模块:对日常关注的运营数据进行汇总展示,帮助运维人员快速了解服务整体运行情况和资源使用情况。

后台管理模块:实现平台的权限控制、定时任务管理、以及与关联系统的统一对接管理等。

技术支持模块:支持查阅用户手册和技术文档,提供问题反馈渠道,提升用户体验。

图片

图1.功能架构图

2关键功能实现

2.1服务高可用

服务高可用从自动故障切换和物理容灾两方面进行设计。首先,通过Redis Sentinel和Redis Cluster支持缓存节点的故障感知和故障切换能力;同时,采用3AZ(可用区)物理部署方式,将同一组副本均匀部署在3个AZ中,提供AZ级别的高可用容灾能力。

2.2自动化部署​

用户自助提交Redis服务需求,经管理员审批完成后,实现分钟级缓存服务交付。自动化部署打破了传统交付模式,覆盖了需求沟通、服务器资源申请、网络资源申请、安装部署、服务交付等流程。实现了Redis服务的快速和标准部署,同时大幅减少了人工运维成本,提升了整体运维效率和服务质量。

2.3运行分析​

一方面,对Redis运行指标进行实时采集和分类展示,便于运维人员发现服务运行风险、进行服务性能优化及故障原因快速定位。

图片

图2.监控指标项

另一方面,从业务系统维度展示Redis服务健康度。通过服务可用性、内存使用、连接数、慢日志等性能指标,建立服务健康度评分模型,方便运维人员全面掌握Redis运行情况、提高管控能力和管理效率。

图片

图3.健康度分析

2.4智能化运维​

智能化运维集成了实例管理、参数修改、主从切换、系统巡检等功能,使常规运维操作自动化,复杂操作流程化,提升了运维操作、跟踪审计和执行能力。

实例管理支持对实例节点进行增加、删除、重启、命令查询操作。

参数修改支持对maxmemory、maxclients、requirepass等参数的在线修改,同时支持实例间的参数一致性对比校验。

主从切换支持一键完成主从切换,并支持批量操作和查看切换状态。

系统巡检通过每天定时任务生成业务系统巡检报告,包括资源使用情况、容量风险情况、基线合规情况等,并主动推送给相关人员。

2.5权限控制​

分布式缓存平台主要面向数据库管理员、应用管理员、开发和测试人员,权限控制需要保证用户只能访问其负责的业务系统,同时保证具备合理的操作权限。平台基于RBAC(Role-based access control)模型实现权限控制,用户登录平台后,后台通过查询CMDB,获取用户关联的业务系统信息,为用户分配业务系统权限,同时查询用户角色信息,通过对不同角色授予对应权限,实现平台权限控制体系。

四、总结与展望

分布式缓存平台建设从G行实际出发,是实现技术服务化、运维向运营转型的重要举措,为业务快速发展提供了敏捷化、高可用的缓存服务,同时提升了缓存服务的运维效率和交付效率,降低了运维管理成本。未来,分布式缓存平台将在云原生方向持续探索,提供更高效可靠的缓存服务能力,为G行业务高质量发展提供更有力的支撑和保障。



Tags:分布式   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
一篇文章带你了解Python的分布式进程接口
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。一、前言在Thread和Process中,应当优...【详细内容】
2024-04-11  Search: 分布式  点击:(2)  评论:(0)  加入收藏
在Redis中如何实现分布式锁的防死锁机制?
在Redis中实现分布式锁是一个常见的需求,可以通过使用Redlock算法来防止死锁。Redlock算法是一种基于多个独立Redis实例的分布式锁实现方案,它通过协调多个Redis实例之间的锁...【详细内容】
2024-02-20  Search: 分布式  点击:(49)  评论:(0)  加入收藏
手动撸一个 Redis 分布式锁
大家好呀,我是楼仔。今天第一天开工,收拾心情,又要开始好好学习,好好工作了。对于使用 Java 的小伙伴,其实我们完全不用手动撸一个分布式锁,直接使用 Redisson 就行。但是因为这些...【详细内容】
2024-02-19  Search: 分布式  点击:(40)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03  Search: 分布式  点击:(50)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  Search: 分布式  点击:(59)  评论:(0)  加入收藏
分布式事务框架选择与实践
分布式事务是处理跨多个服务的原子操作的关键概念,而选择适合应用场景的框架对于确保事务一致性至关重要。以下是几个常见的分布式事务框架,并讨论它们的使用和实践。1. XA协...【详细内容】
2024-01-05  Search: 分布式  点击:(96)  评论:(0)  加入收藏
分布式场景下的事务机制
事务消息是RocketMQ的一个非常特色的高级特性,它的基础诉求是通过RocketMQ的事务机制,来保证上下游的数据⼀致性。我们在单机版本下面只需要在业务方法上加上对应的事务就可以...【详细内容】
2023-12-26  Search: 分布式  点击:(124)  评论:(0)  加入收藏
分布式存储系统在大数据处理中扮演着怎样的角色?
如果存储节点本身可以定制,则通常会让其支持部分计算能力,以利用数据的亲和性,将部分计算下推到相关的存储节点上。如果存储是云上的 S3 等对象存储,无法定制,则通常会将数据在计...【详细内容】
2023-12-19  Search: 分布式  点击:(48)  评论:(0)  加入收藏
MongoDB与大数据处理:构建高性能分布式数据库
MongoDB是一种非关系型数据库,具有高度灵活性和可扩展性。在处理大量数据时,索引的优化是提升查询性能的关键。下面将介绍一些MongoDB索引优化的指南,帮助用户更好地利用索引来...【详细内容】
2023-12-18  Search: 分布式  点击:(72)  评论:(0)  加入收藏
聊一聊雪花算法与分布式ID生成
生成全局唯一ID的雪花算法原理雪花算法是一种用于生成全局唯一ID的算法,最初由Twitter开发,用于解决分布式系统中生成ID的问题。其核心思想是将一个64位的长整型ID划分成多个...【详细内容】
2023-12-12  Search: 分布式  点击:(135)  评论:(0)  加入收藏
▌简易百科推荐
对于微服务架构监控应该遵守的原则
随着软件交付方式的变革,微服务架构的兴起使得软件开发变得更加快速和灵活。在这种情况下,监控系统成为了微服务控制系统的核心组成部分。随着软件的复杂性不断增加,了解系统的...【详细内容】
2024-04-03  步步运维步步坑    Tags:架构   点击:(5)  评论:(0)  加入收藏
大模型应用的 10 种架构模式
作者 | 曹洪伟在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重...【详细内容】
2024-03-27    InfoQ  Tags:架构模式   点击:(13)  评论:(0)  加入收藏
哈啰云原生架构落地实践
一、弹性伸缩技术实践1.全网容器化后一线研发的使用问题全网容器化后一线研发会面临一系列使用问题,包括时机、容量、效率和成本问题,弹性伸缩是云原生容器化后的必然技术选择...【详细内容】
2024-03-27  哈啰技术  微信公众号  Tags:架构   点击:(10)  评论:(0)  加入收藏
DDD 与 CQRS 才是黄金组合
在日常工作中,你是否也遇到过下面几种情况: 使用一个已有接口进行业务开发,上线后出现严重的性能问题,被老板当众质疑:“你为什么不使用缓存接口,这个接口全部走数据库,这怎么能扛...【详细内容】
2024-03-27  dbaplus社群    Tags:DDD   点击:(12)  评论:(0)  加入收藏
高并发架构设计(三大利器:缓存、限流和降级)
软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。引言1.高并发背景互联网行业迅速发展,用户量剧...【详细内容】
2024-03-13    阿里云开发者  Tags:高并发   点击:(6)  评论:(0)  加入收藏
如何判断架构设计的优劣?
架构设计的基本准则是非常重要的,它们指导着我们如何构建可靠、可维护、可测试的系统。下面是这些准则的转换表达方式:简单即美(KISS):KISS原则的核心思想是保持简单。在设计系统...【详细内容】
2024-02-20  二进制跳动  微信公众号  Tags:架构设计   点击:(36)  评论:(0)  加入收藏
详解基于SpringBoot的WebSocket应用开发
在现代Web应用中,实时交互和数据推送的需求日益增长。WebSocket协议作为一种全双工通信协议,允许服务端与客户端之间建立持久性的连接,实现实时、双向的数据传输,极大地提升了用...【详细内容】
2024-01-30  ijunfu  今日头条  Tags:SpringBoot   点击:(17)  评论:(0)  加入收藏
PHP+Go 开发仿简书,实战高并发高可用微服务架构
来百度APP畅享高清图片//下栽のke:chaoxingit.com/2105/PHP和Go语言结合,可以开发出高效且稳定的仿简书应用。在实现高并发和高可用微服务架构时,我们可以采用一些关键技术。首...【详细内容】
2024-01-14  547蓝色星球    Tags:架构   点击:(115)  评论:(0)  加入收藏
GraalVM与Spring Boot 3.0:加速应用性能的完美融合
在2023年,SpringBoot3.0的发布标志着Spring框架对GraalVM的全面支持,这一支持是对Spring技术栈的重要补充。GraalVM是一个高性能的多语言虚拟机,它提供了Ahead-of-Time(AOT)编...【详细内容】
2024-01-11    王建立  Tags:Spring Boot   点击:(124)  评论:(0)  加入收藏
Spring Boot虚拟线程的性能还不如Webflux?
早上看到一篇关于Spring Boot虚拟线程和Webflux性能对比的文章,觉得还不错。内容较长,抓重点给大家介绍一下这篇文章的核心内容,方便大家快速阅读。测试场景作者采用了一个尽可...【详细内容】
2024-01-10  互联网架构小马哥    Tags:Spring Boot   点击:(117)  评论:(0)  加入收藏
站内最新
站内热门
站内头条