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

简介:

【编者按】:刘兵,花名玄靖,开源技术爱好者。高性能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. 自动服务治理







来源:中生代技术

原文链接


相关文章
|
中间件
83 # 静态服务中间件 koa-static 的使用以及实现
83 # 静态服务中间件 koa-static 的使用以及实现
161 0
|
5月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
消息中间件 存储 监控
|
存储 JSON 前端开发
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-JWT和中间件(Middleware)的使用EP07
前文再续,上一回我们完成了用户的登录逻辑,将之前用户管理模块中添加的用户账号进行账号和密码的校验,过程中使用图形验证码强制进行人机交互,防止账号的密码被暴力破解。本回我们需要为登录成功的用户生成Token,并且通过Iris的中间件(Middleware)进行鉴权操作。
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-JWT和中间件(Middleware)的使用EP07
|
SQL 负载均衡 Kubernetes
高性能数据访问中间件 OBProxy(八):揭秘高性能转发原理
高性能是 OBProxy 的重要特性之一,为了实现 OBProxy 高性能特性,我们做了大量的工作。本篇文章我们将介绍 OBProxy 如何提升 OceanBase 数据库性能、OBproxy 单机性能优化工作以及 OBProxy 常见性能问题。对于 OBProxy 性能,我们分为两个部分:提升 OceanBase 数据库整体性能,如 OBProxy 的分区位置计算功能、LDC 路由功能、读写分离
392 68
高性能数据访问中间件 OBProxy(八):揭秘高性能转发原理
|
消息中间件 存储 缓存
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
360 71
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
|
存储 缓存 负载均衡
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
498 76
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
|
存储 缓存 负载均衡
【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
256 62
【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
13406 1

热门文章

最新文章