Spring Data Redis:Sentinel的高可用性

1.概述

为了使Redis具有高可用性,我们可以使用Spring Data Redis对Redis Sentinel的支持。 借助Sentinel,我们可以创建自动抵御某些故障的Redis部署。

Redis Sentinel还提供其他附带任务,例如监视,通知,并充当客户端的配置提供程序。

在较高级别,Sentinel的功能是:

  • 自动故障转移 。 当主服务器无法正常工作时,Sentinel会为我们启动故障转移过程,将从服务器升级为主服务器。 此外,其他从属服务器也被重新配置为使用新的主服务器,并且使用Redis服务器的应用程序将被告知要使用的新地址。
  • 配置源 。 故障转移发生时,Sentinels将报告新地址。 这是因为Sentinel充当客户端的授权来源。 客户端进行服务发现时,它们会连接到Sentinels,以请求负责给定服务的当前Redis主服务器的地址。
  • 监控 。 Sentinel会定期检查我们的主实例和从实例是否按预期工作。
  • 通知 。 可以将Sentinel配置为在Redis实例之一发生错误时通知各种目标。 这些目标包括其他应用程序,系统管理员或API。

2.如何运行前哨

自Redis 2.8起,Redis附带了Sentinel的稳定版本。

启动Sentinel非常容易。 当我们在上一篇文章中回顾Spring Data Redis(使用Spring Boot)时,我们在Mac上使用homebrew安装了Redis。 此命令使我们可以在该安装中运行Sentinel:

redis-sentinel /path/to/sentinel.conf

如果我们使用的是redis-sentinel可执行文件(或者如果有一个使用该名称的符号链接到redis-server的可执行文件),那么我们也可以使用上述命令运行Sentinel。

另外,我们可以使用redis-server可执行文件并以Sentinel模式启动它,如下所示:

redis-server /path/to/sentinel.conf --sentinel

3.部署Sentinel之前需要了解的关键概念

在部署到Sentinel之前,我们应该检查的一些概念包括:

  1. 我们至少需要三个Sentinel实例才能进行持久的Redis部署。
  2. 我们应该将三个Sentinel实例放置在据信会独立而不是一起失败的计算机或虚拟机中。 例如,这可能意味着不同的可用区。
  3. Redis使用异步复制,因此即使在使用Sentinel时,Redis也不能保证在故障期间会保持接收到的写入。 但是,我们可以部署Sentinel来减少写入丢失的时间。
  4. 任何高可用性设置都必须定期进行测试,并且Sentinel不变。 我们需要在开发环境和生产环境中进行测试。 通过计划和测试故障,我们可以限制故障。

4. Spring数据中的配置

当我们使用基于Sentinels的配置时,我们不会向Spring Data Redis提供Redis主机/端口信息。 相反,我们提供了主服务器的属性和Sentinel URL列表。 每个Sentinel进程都有其自己的配置文件,该文件列出了主Redis服务器,例如:

sentinel monitor themaster 127.0.0.1 6379 2
sentinel down-after-milliseconds themaster 60000
sentinel failover-timeout themaster 180000
sentinel parallel-syncs themaster 1

一旦配置好了主服务器,从服务器和Sentinels,我们就需要在应用程序中更改spring数据redis配置,以与哨兵一起工作。

4.1 Java配置

可以使用Jedis和Lettuce来完成Java配置:

/*** Jedis*/
@Bean
public RedisConnectionFactory jedisConnectionFactory() {RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration().master("themaster").sentinel("127.0.0.1", 26579).sentinel("127.0.0.1", 26580);return new JedisConnectionFactory(sentinelConfig);
}/*** Lettuce*/
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration().master("themaster").sentinel("127.0.0.1", 26579).sentinel("127.0.0.1", 26580);return new LettuceConnectionFactory(sentinelConfig);
}

4.2属性配置

ProperySource (例如application.properties )可用于配置。 例如,如果我们使用本地主机:

spring.redis.sentinel.master= themaster # Name of our Redis server.
spring.redis.sentinel.nodes= localhost:26579, localhost:26580, localhost:26581 # Comma-separated list of host:port pairs.

5.结论

今天,我们回顾了如何通过使用Sentinel使用Redis实现高可用性,以及Spring Data Redis如何在Spring应用程序中支持这一点。 有关Sentinel的更多信息, Redis网站是一个很好的来源。

在我的网站上,还有从Spring Data Redis和Spring Boot开始的信息以及有关Spring Framework的几篇文章。

翻译自: https://www.javacodegeeks.com/2019/01/spring-data-redis-high-availability-sentinel.html

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

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

相关文章

关于交换机和路由器的区别介绍

交换机(又名交换式集线器),是一种用于电(光)信号转发的网络设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机的作用可以理解为将一些机器连接起来组成一个局域网。而路由器与交换机…

[渝粤教育] 西南科技大学 财务会计 在线考试复习资料(2)

财务会计——在线考试复习资料 一、单选题 1.下列各项中,不属于筹资活动产生的现金流量的是( )。 A.吸收权益性投资所收到的现金 B.收回债券投资所收到的现金 C.分配现金股利 D.借入资金所收到的现金 2.下列关于财务报表的说法,错误的是( )…

java中原生方法_Java中原生(native)函数的用法

1、原生(Native)函数的概念在Java程序中,可以使用由其他编程语言实现的函数,这种函数,在Java中被称之为原生(Native)函数。2、在Java程序中使用原生函数的优缺点1)优点A、在Java程序中,可以复用已由其他语言实现的各种库。可能已存…

什么是节点光端机?总线型光端机有哪些优势?

节点式光端机又称总线型光端机,其准确的定义是采用单/双纤链路式组网形式的图像传输系统,也被称为链路式光端机。那么,节点式光端机具体是什么呢?总线型光端机又有哪些优势呢?接下来我们就跟随飞畅科技的小编一起来详细…

[渝粤教育] 西南科技大学 高频电子线路 在线考试复习资料2021版

高频电子线路——在线考试复习资料2021版 一、单选题 1.直接调频电路的优点是( )。 A.载频稳定度高 B.能够获得较大的线性频偏 答案:看左边查询 2.调频信号,则调频指数(最大相偏)是( )。 A.3 B.10 C.1000 D.1 答案:看左边查询 3.在混频过程中,频率等于或接近于中频的干…

【渝粤教育】电大中专学前儿童语言教育 (11)作业 题库

作业视频教务托管,壹叁路路贰陆陆壹〇肆〇 下面哪个选项不是学前儿童语言获得理论( )。 A.先天与后天相互作用论 B.遗传决定论 C.先天决定论 D.后天环境论 错误 正确答案:左边查询 学生答案:A 2.语言是( )和思维的工具。 A.动作 B.声音 C. 交…

mysql 备份html数据_MySQL自动化生成HTML页面(导出数据)极限SQL编程-sql文件怎么打开...

今日客户要求表内的数据依据某种分组生成HTML页面进行展示,一般处理这种需求直接上编程工具就好了,从数据库里读取数据,根据规则生成字符串,最后将字符串写出到文件。由于需求比较急,作为数据库编程系列文章&#xff0…

什么是数据光端机?数据光端机的作用有哪些?

数据光端机,电信非压缩光端机,就是将多个E1(一种中继线路的数据传输标准,通常速率为2.048Mbps,此标准为中国和欧洲采用)信号变成光信号并传输的设备。那么,什么是数据光端机?数据光端…

【渝粤教育】电大中专幼儿园组织与管理 (10)作业 题库

作业视频教务托管,壹叁路路贰陆陆壹〇肆〇 ( )是指一定组织中的管理者,通过计划、组织、领导与控制,协调他人的活动,带领人们既有效果,又有效率去实现组织目标的过程。 A.指导 B.协调 C.指挥 D.管理 错误 正确答案&…

spring创建web项目_使用Spring WS创建合同优先的Web服务

spring创建web项目1引言 本文介绍了如何使用来实现和测试SOAP Web服务 Spring Web Services项目 。 本示例将JAXB2用于(取消)编组。 为了开发服务,我将使用合同优先的方法,该方法首先定义服务合同,然后基于此合同实施…

【渝粤教育】电大中专新媒体营销实务 (15)作业 题库

1.新媒体在进行内容传播时,可以做到将文字、图片、视频等同时传播,呈现出()的特点。 A.移动化 B.多元化 C.便捷性 错误 正确答案:左边查询 学生答案:A 2.第四媒体发展到宽带互联网阶段成为(&…

mysql 返回多行数据_mysql – 如何连接多个表,包括查找表和返回行中的数据

我正在尝试显示一些简单的计算机游戏结果,并且可以轻松地在我的代码中逐行迭代结果.我想要它,以便每个游戏的所有相关数据都在每个记录中,所以我可以在一行输出所有数据,例如:> A队(得分45)对阵B队(得分55),比赛持续时间:5分钟> C队(得分60)对阵D队…

什么是网络光端机?网络光端机工作原理及功能介绍!

网络光端机,就是光信号传输的终端设备。由于目前技术的提高,光纤价格的降低使它在各个领域得到很好的应用。在远程光纤传输中,光缆对信号的传输影响很小,光纤传输系统的传输质量主要取决于光端机的质量,因为光端机负责…

使用@JsonIdentityInfo的Spring自定义序列化器

介绍 Spring中从JSON到JSON的序列化/反序列化已广泛用于基于Spring的现代应用程序中。 它基于杰克逊。 Jackson可以轻松地将任何POJO序列化为JSON,反之亦然。 这段代码写得很好。 我从未遇到任何问题。 当涉及到自定义序列化程序时,它将变得更加困难。 这…

【渝粤教育】电大中专电商运营实操 (15)作业 题库

1.目前菜鸟网络依赖大数据和云计算已实现了哪些功能( ) A.智能分单 B.自动化仓库 C.以上都正确 D.智能发货 E.物流云加速 错误 正确答案:左边查询 学生答案:E 2.目前( )的电子商务呈现出巨大的发展潜力。 A…

java notify视频_一个很好的小例子来演示java中的wait()和notify()方法

任何人都可以在java中为我提供一个很好的小例子演示wait()和notify()功能.我尝试使用下面的代码,但它没有显示我的预期.public class WaitDemo {int i 10;int display() {System.out.println("Lexmark");i;return i;}}public class ClassDemo1 extends Thread {priv…

【渝粤教育】电大中专电子商务网站建设与维护 (22)作业 题库

1.阿里巴巴的创始人是( ) A.丁磊 B.李彦宏 C.马化腾 D.马云 错误 正确答案:左边查询 学生答案:未作答 2.阿里巴巴目前的电子商务在哪个阶段( ) A.资金流 B.物流 C.商品流 D.信息流 错误 正确答案&#xff1…

以太网交换机的用途有哪些?

交换机的主要功能包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。交换机还具备了一些新的功能,如对VLAN(虚拟局域网)的支持、对链路汇聚的支持,甚至有的还具有防火墙的功能。接下来就由飞畅科技的小编带大家详细了解下交…

【渝粤教育】电大中专药理学基础 (3)作业 题库

1.关于巴比妥类药物药理作用的描述,错误的是()。 A.镇静 B.催眠 C.麻醉 D.抗惊厥 E.镇痛 错误 正确答案:左边查询 学生答案:C 2.地西泮适应证不包括()。 A.镇静催眠 B.抗癫痫和抗惊厥 C.肌紧张性…

交换机主要分为哪几类?

交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。 从广义上来看&…