NRedis-Proxy - 高性能中间件服务器

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

高性能中间件服务器

一、 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

序号名称描述
1idSpring 标签唯一标志
2redisProxyHostNRedis-proxy 对外提供主机号
3redisProxyPortNRedis-proxy 对外提供端口号
4algorithm-refNRedis-proxy 多主分片实现类引用
5addressZookpeer 地址

b) redisProxyMaster

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

c) redisProxyCluster

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

d) redisPoolConfig

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

e) 默认两个分片策略

输入图片说明

六、 NRedis-Proxy 部署

###1. 部署环境要求 ###

  • 1.1 JDK 1.7
  • 1.2 Redis-Server
  • 1.3 Zookpeer3.4.6

###2. 调试步骤 ###

  • ** 2.1 启动Redis Server 主机器 ** 输入图片说明
  • ** 2.2 启动Redis Server ** 输入图片说明
  • ** 2.3 启动 zookpeer ** 输入图片说明
  • ** 2.4 启动NRedis-Proxy Server ** 输入图片说明
  • ** 2.5 使用Redis 命令行连接NRedis-Proxy ** 输入图片说明

3. 部署方式

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

七、 redis-monitor监控

a) nredis-proxy监控

输入图片说明输入图片说明输入图片说明

b) redis-server监控

输入图片说明输入图片说明输入图片说明

c) redis-monitor本身监控

输入图片说明输入图片说明输入图片说明

八、 redis-monitor 服务治理

a) 定时器配置

输入图片说明

b) 手动服务治理

输入图片说明

c) 自动服务治理

输入图片说明

转载于:https://my.oschina.net/liubingsmile/blog/825474

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2014-4877 wget: FTP Symlink Arbitrary Filesystem Access

目录 1. 漏洞基本描述 2. 漏洞带来的影响 3. 漏洞攻击场景重现 4. 漏洞的利用场景 5. 漏洞原理分析 6. 漏洞修复方案 7. 攻防思考 1. 漏洞基本描述 0x1: Wget简介 wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载&am…

mysql-nt.exe w3wp.exe cpu 100%_w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法

对于IIS管理员来说,经常会碰到Web服务器CPU占用100%的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析w3wp.exe(IIS )占用CPU 100%的一些原因 和解决方案,希望能对你有所帮助w3wp.exe的解释:全名,IIS Appli…

TOP结果详解

2019独角兽企业重金招聘Python工程师标准>>> TOP前5行 top - 16:24:25 up 284 days, 4:59, 1 user, load average: 0.10, 0.05, 0.01 top 当前时间、系统启动时间、当前系统登录用户数目、平均负载(1分钟,10分钟,15分钟)。平均负载&#x…

BZOJ3236 [Ahoi2013]作业

昨天晚上做的。。。差错一直查到今天 最后没办法问管理员要了数据才知道原来ans数组开小了233,简直沙茶 这道题不就是裸的莫队嘛 ||| 只要用树状数组维护当前的两种个数即可。 1 /**************************************************************2 Problem: 3…

mysql ddl dml 导出_MySQL:DDL和DML语句,弄明白了吗?

语句分类DDL(Data Definition Languages)语句:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。增删改表的结构D…

敏捷水手——单体法到微服务之旅

\本文要点\\探究持续四年多的渐进式改革是什么样子;\\t探索为什么在变革软件和组织设计时要遵循康威定律;\\t看看如何将领导力应用到不同的团队、领域和层级;\\t举例说明变革管理如何依赖于理念和一贯的长远目标;\\t了解从职能型团…

SQLCMD的介绍

SQLCMD的介绍 原文:SQLCMD的介绍文章转载自:http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html最近经常用到超过80M *.sql文件的导入问题。上网找了一下,发现超过80M的文件是不能在查询分析器中执行的。找了些解决方案,个人感觉最简单的…

怎样下载C/C++的免费、开源且跨平台IDE——Code::Blocks

进入Code::Blocks的官网,官网地址为:http://www.codeblocks.org/home。进入后如下图所示: 点击“Home”菜单,跳转到IDE的下载界面: 有几种模式可供选择,我选择的第一种,Download the binary rel…

Logistic回归 python实现

Logistic回归 算法优缺点: 1.计算代价不高,易于理解和实现2.容易欠拟合,分类精度可能不高3.适用数据类型:数值型和标称型 算法思想: 其实就我的理解来说,logistic回归实际上就是加了个sigmoid函数的线性回归…

python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码

1. 前言。1.1. 需求背景。每天抓取的是同一份商品的数据,用来做趋势分析。要求每天都需要抓一份,也仅限抓取一份数据。但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量有关,一般情…

博客园win8客户端开发记录5-app设置 登录 回复评论

这段时间完成了博客园cnblogs登录,注销和设置的相关功能 ,进入软件, 打开win8的charm setting 选择设置就是当前软件的设置选项了, 感觉这有点山寨mac os x系统(所有软件包括当前系统使用统一的设置)。 扯远…

简单工厂模式,工厂方法模式,抽象工厂模式,spring的狂想

菜鸟D在项目中遇见一个比较纠结的高耦合,所以就想办法来解耦。情况是这样的:系统通过用户选择treeview控件的节点判断调用不同的处理,这些处理中某些东西又是类似的。同事的建议是采用简单工厂,耦合就耦合吧,反正treev…

如何使用CSS实现居中

前言: 这一篇主要是翻译 《how-to-center-anything-with-css》这一篇文章的主要内容,再加上自己的一些概括理解;主要问题是解决垂直居中的问题。我们知道实现水平居中的方式很多种,比如: text-align:center; margin:0 …

java布局_运用 BoxLayout 进行 Swing 控件布局

引言在用户使用 Java Swing 进行用户界面开发过程中,会碰到如何对 Java Swing 的控件进行布局的问题。Swing 的控件放置在容器 (Container) 中,容器就是能够容纳控件或者其它容器的类,容器的具体例子有 Frame、Panel 等等。容器需要定义一个布…

java链表实现_链表的原理及java实现

一:单向链表基本介绍链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。下面对单向链表…

xss challenge 解题思路(1-3)

challenge1: 用很基本的方法即可&#xff0c;截图如下&#xff1a; 提交后成功弹窗&#xff0c;完成。 challenge2 这次我们发现我们输入的内容被放入value”“ 中&#xff0c;所以需要将前面的结构闭合&#xff0c;构造如下&#xff1a; "><script>alert(docume…

宾得准饼干广角镜头DA15

DA15的挂机效果图&#xff0c;感觉还是超级的小&#xff0c;是最小的广角镜头了&#xff1a; 主要特点1. 超广视角当安装在宾得数码单反相机上时&#xff0c;这款全新的镜头提供相当于35mm胶片规格的约23mm画面视角&#xff0c;可使拍摄者拍摄出独特的诱人影像和超广角镜头独有…

java slf4j_SLF4J 使用手册

原文链接 译者&#xff1a;zivyuJava的简单日志门面( Simple Logging Facade for Java SLF4J)作为一个简单的门面或抽象&#xff0c;用来服务于各种各样的日志框架&#xff0c;比如java.util.logging、logback和log4j。SLF4J允许最终用户在部署时集成自己想要的日志框架。需要…

[译]Java 垃圾回收介绍

说明&#xff1a;这篇文章来翻译来自于Javapapers 的Java Garbage Collection Introduction 在Java中&#xff0c;对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的。和C语言不一样的是&#xff0c;开发中不需要在Java中写垃圾回收代码。这也是使Java更加流行而且帮…

打印三角形

直角三角形 #include<iostream> using namespace std; int main() { int i,j; for(i1;i<10;i) {for(j1;j<i;j) cout<<"*"; cout<<endl; } } ———————————————————————————…