刘兵|NRedis-Proxy 高性能中间件服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
性能测试 PTS,5000VUM额度
简介:

【编者按】:刘兵,花名玄靖,开源技术爱好者。高性能Redis中间件NRedis-Proxy作者,目前研究方向Java中间件,微服务等技术。

一. NRedis-Proxy   介绍

NRedis-Proxy   是一个Redis中间件服务,第一个Java   版本开源Redis中间件,无须修改业务应用程序任何代码与配置,与业务解耦;以Spring为基础开发自定义标签,让它可配置化,使其更加容易上手;提供RedisServer监控以及自动、收到failover等功能;以netty   作为通信传输工具,让它具有高性能,高并发,可分布式扩展部署等特点,单机器单个RedisServer   QPS在9千左右。

二. NRedis-Proxy  技术 架构图

a. 系统架构图

b. 技术架构图

c. 部署架构图

三. NRedis-Proxy   优势以及缺点

a. 功能优势

1) 自带连接池,简单稳定且性能高效

2) 支持读写分离,从读按照权重算法

3)   支持灵活主从配置策略

4)   默认支持一致性哈希分片策略,扩展性强

5)   分片策略与从读取策略可自定义化

6) 支持主从自动、手动切换,下次应用程序或者机器重启不会受到任何影响

7) 支持HA   分布式部署,节点可随意扩展

8) 提供redis-monitor小型机器人,监听cpu、jvm、线程、redis   命中率等监控服务

b. 天然缺点

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

四. NRedis-Proxy   类逻辑调用图

五. NRedis-Proxy   配置标签

a. redisProxyNode


序号 名称 描述
1 id Spring   标签唯一标志
2 redisProxyHost NRedis-proxy   对外提供主机号
3 redisProxyPort NRedis-proxy   对外提供端口号
4 algorithm-ref NRedis-proxy   多主分片实现类引用
5 address Zookpeer   地址


b. redisProxyMaster

序号 名称 描述
1 id Spring   标签唯一标志
2 host RedisServer主主机名
3 port RedisServer主端口号
4 algorithm-ref NRedis-proxy   从分片读取策略类引用
5 config-ref 连接池配置

c. redisProxyCluster

序号 名称 描述
1 id Spring   标签唯一标志
2 host RedisServer主主机名
3 port RedisServer主端口号
4 algorithm-ref NRedis-proxy   从分片读取策略类引用
5 config-ref 连接池配置
6 weight 权重

d. redisPoolConfig

序号 名称 描述
1 id Spring   标签唯一标志
2 connectionTimeout 连接超时时间
3 maxActiveConnection 最大活跃连接数
4 maxIdleConnection 最大空闲连接数
5 minConnection 最小连接数
6 maxWaitMillisOnBorrow 取出最大等待时间
7 initialConnection 初始化连接数
8 timeBetweenEvictionRunsMillis 每隔多久检查一次连接池
9 minEvictableIdleTimeMillis 连接池最小生存时间
10 minIdleEntries 最小空闲数
11 testOnBorrow 取出是否检测
12 testOnReturn 归还是否检查
13 testWhileIdle 空闲是否检测

    e. 默认两个分片策略

六. NRedis-Proxy   部署

a. 部署环境要求

  • JDK   1.7

  • Redis-Server

  • Zookpeer3.4.6

b. 调试步骤

1) 启动Redis   Server   主机器

2) 启动Redis   Server

3) 启动   zookpeer

4) 启动NRedis-Proxy   Server

5) 使用Redis   命令行连接NRedis-Proxy

c. 部署方式

maven执行nredis-proxy-bootstrap   ,然后再找到   nredis-proxy-server.sh   文件执行

七. redis-monitor监控

a. nredis-proxy监控

b. redis-server监控

c. redis-monitor本身监控

八. redis-monitor   服务治理

a. 定时器配置

b. 手动服务治理

c. 自动服务治理







来源:中生代技术

原文链接


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
中间件
83 # 静态服务中间件 koa-static 的使用以及实现
83 # 静态服务中间件 koa-static 的使用以及实现
56 0
|
存储 Java 中间件
【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
936 5
【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
|
4月前
|
消息中间件 存储 监控
|
存储 JSON 前端开发
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-JWT和中间件(Middleware)的使用EP07
前文再续,上一回我们完成了用户的登录逻辑,将之前用户管理模块中添加的用户账号进行账号和密码的校验,过程中使用图形验证码强制进行人机交互,防止账号的密码被暴力破解。本回我们需要为登录成功的用户生成Token,并且通过Iris的中间件(Middleware)进行鉴权操作。
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-JWT和中间件(Middleware)的使用EP07
|
存储 缓存 负载均衡
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
274 7
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
|
SQL 负载均衡 Kubernetes
高性能数据访问中间件 OBProxy(八):揭秘高性能转发原理
高性能是 OBProxy 的重要特性之一,为了实现 OBProxy 高性能特性,我们做了大量的工作。本篇文章我们将介绍 OBProxy 如何提升 OceanBase 数据库性能、OBproxy 单机性能优化工作以及 OBProxy 常见性能问题。对于 OBProxy 性能,我们分为两个部分:提升 OceanBase 数据库整体性能,如 OBProxy 的分区位置计算功能、LDC 路由功能、读写分离
257 8
高性能数据访问中间件 OBProxy(八):揭秘高性能转发原理
|
消息中间件 存储 缓存
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
202 4
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
|
消息中间件 Java 中间件
【Alibaba中间件技术系列】「RocketMQ技术专题」带你一起去探索RocketMQ服务架构的线程模型分析
【Alibaba中间件技术系列】「RocketMQ技术专题」带你一起去探索RocketMQ服务架构的线程模型分析
284 4
【Alibaba中间件技术系列】「RocketMQ技术专题」带你一起去探索RocketMQ服务架构的线程模型分析
|
存储 缓存 负载均衡
【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
117 1
【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
|
5月前
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
1253 0