博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NRedis-Proxy 高性能Redis 中间件服务原理解析
阅读量:6326 次
发布时间:2019-06-22

本文共 2127 字,大约阅读时间需要 7 分钟。

受飞凡电商技术负责人刘兵先生的独家授权,在csdn博客我原创发表《NRedis-Proxy 高性能Redis 中间件服务》的架构原理,以及项目开源介绍。

一、 NRedis-Proxy 介绍

NRedis-Proxy 是一个Redis中间件服务,第一个Java 版本开源Redis中间件,无须修改业务应用程序任何代码与配置,与业务解耦;以Spring为基础开发自定义标签,让它可配置化,使其更加容易上手;以netty 作为通信传输工具,让它具有高性能,高并发,可分布式扩展部署等特点,单片性能损耗约5%左右。

二、 NRedis-Proxy 技术架构图

这里写图片描述
三、NRedis-Proxy 优势以及缺点

a) 功能优势 1. 自带连接池,简单稳定且性能高效 2. 支持读写分离,从读按照权重算法 3. 支持灵活主从配置策略 4. 默认支持一致性哈希分片策略,扩展性强 5. 分片策略与从读取策略可自定义化 6. 支持主从自动切换,提供RedisServer监听服务 7. 支持HA 分布式部署,节点可随意扩展

b) 天然缺点 中间件的存在,会自带网络损耗,但是网络带宽足够,可以忽略不计。相比客户端分片等策略,中间件可以解决客户端应用过多,解决M*N 问题,Redis-Server连接数不够,造成机器CPU性能降低;如下图:

这里写图片描述
四、NRedis-Proxy 类逻辑调用图

这里写图片描述
五、 NRedis-Proxy 配置标签

1、redisProxyNode

这里写图片描述
2、redisProxyMaster
这里写图片描述
3、redisProxyCluster
这里写图片描述
4、默认两个分片策略
这里写图片描述
六、NRedis-Proxy 使用场景

1、项目初始团队 当一个公司成立一个研发初始团队,对于互联网公司,研发时间周期短,迭代快,没有时间与资源研发基础中间件,如果有成熟的中间服务,不参合业务代码,与应用解耦,让研发专心专一研发业务本身 ,同时又能够让后期上线业务稳定。NRedis-Proxy是一个高性能且稳定中间件服务,第一个真正意义Java 版本Redis中间件,让研发团队既可以学习,又可控!

2、秒杀场景,应用服务较多,RedisServer较少

这里写图片描述
通常静态HTML等内容,是通过CDN的部署,一般压力不大,核心瓶颈实际上在后台请求接口上。这个后端接口,必须能够支持高并发请求,同时,非常重要的一点,必须尽可能“快”,在最短的时间里返回用户的请求结果。面临下面几个问题:
1、怎么样保证读取高性能,满足高并发请求?
2.、怎么样保证数据一致性,保证 数据不丢失,与Redis 数据保持一致性
3、 RedisServer 连接数不够,应用程序RedisClient 客户端连接数过多,造成 Redis Server 机器CPU 性能降低,以至于Redis Server 性能低
4.、Redis Server 机器性能不一样,当大流量风暴 怎么样保障高性能RedisServer 机器 支持支撑 重要的业务实时性,高并发性
解决问题方案如下图:
这里写图片描述
1、怎么样保证读取高性能,满足高并发请求?
使用内存级别NOSQL 数据-Redis,保障高性能高并发
2、怎么样保证数据一致性,保证MySQL 数据不丢失,与Redis 数据保持一致性
使用MQ 消息以及消息幂等性,采取补偿机制,记录错误日志,补写数据,保障数据最终一致性
3、RedisServer 连接数不够,应用程序RedisClient 客户端连接数过多,造成
Redis Server 机器CPU 性能降低,以至于Redis Server 性能低 使用NRedis-Proxy 集群 部署,对应用程序透明化,保障连接数可用,避免此问题
4、Redis Server 机器性能不一样,当大流量风暴 怎么样保障高性能
RedisServer 机器 支持支撑 重要的业务实时性,高并发性 自定义Redis 分片机制,采用虚拟捅算法以及配置中心系统,当流量一旦来临,在快超过最大容量时,改变分片规则以及流量,把不重要的业务流量涌向低性能机器,充分利用机器性能,保障服务性能.(后续开源)
七、NRedis-Proxy 部署

1、部署架构图

这里写图片描述
2、部署环境要求 JDK 1.7 Redis-Server Zookpeer3.4.6
3、调试步骤 a、启动Redis Server 主机器
这里写图片描述
b、启动Redis Server
这里写图片描述
c、启动 zookpeer
这里写图片描述
d、启动NRedis-Proxy Server
这里写图片描述
e、使用Redis 命令行连接NRedis-Proxy
这里写图片描述
g、部署方式 执行nredis-proxy-sample 中 sing.sh 文件
八、 NRedis-Proxy 未来规划

1、Redis Server 集群监控报警 2、NRedis-Proxy页面可控制流量以及RedisServer主从切换

九、项目开源地址

转载地址:http://pqmaa.baihongyu.com/

你可能感兴趣的文章
精通Python网络爬虫:核心技术、框架与项目实战.1.3 网络爬虫的组成
查看>>
SELinux 入门
查看>>
《C#多线程编程实战(原书第2版)》——1.3 暂停线程
查看>>
让 Ubuntu 上的 Unity 在线搜索功能见鬼去吧!
查看>>
《机器人构建实战》——2.1 舵机的基础知识
查看>>
Greenplum/Deepgreen ERROR: insufficient memory reserved for statement (memquota.c:228)
查看>>
ASO优化经验:APP关键字优化的技巧
查看>>
Redis---key操作
查看>>
【dji sdk】mobile sdk 摇杆部分
查看>>
【法语译文】法国如何在大数据时代担当重要角色
查看>>
spring-依赖注入的注解配置
查看>>
串口通信UART--读书笔记
查看>>
企业应用如何解决Multi-Cloud的基础设施管理及应用部署问题
查看>>
【百科】走近飞天:女娲——分布式协同服务
查看>>
深入理解 Session 与 Cookie
查看>>
翻转汇编第6周总结
查看>>
开始使用机器学习
查看>>
使用OpenApi弹性创建云服务器ECS
查看>>
【阿里云资讯】新零售时代的双11移动技术亮剑 ——2016年阿里移动平台新技术解读...
查看>>
iOS中 自定义cell升级版 (高级)
查看>>