当前位置: 首页 > wzjs >正文

非常好的网站建设公司网推app有哪些

非常好的网站建设公司,网推app有哪些,把自己做的网站放到网上去,合肥前端开发培训机构在 Kubernetes (k8s) 环境下使用 Redis Sentinel 进行高可用部署时,可能会遇到 failover 超时、Sentinel 误判、Spring Boot 连接失败 以及 Redisson 配置错误等问题。本文将对这些问题进行汇总分析,并提供详细的解决方案。 1️⃣ Redis Sentinel 介绍 …

在 Kubernetes (k8s) 环境下使用 Redis Sentinel 进行高可用部署时,可能会遇到 failover 超时Sentinel 误判Spring Boot 连接失败 以及 Redisson 配置错误等问题。本文将对这些问题进行汇总分析,并提供详细的解决方案。


1️⃣ Redis Sentinel 介绍

Redis Sentinel 是 Redis 的高可用组件,主要功能包括:

  • 主节点故障检测:判断 Redis 主节点是否宕机。
  • 自动故障转移:当主节点不可用时,选举新的主节点。
  • 通知客户端:应用程序(如 Spring Boot、Redisson)可以通过 Sentinel 获取最新的主节点地址。

Redis Sentinel 关键配置(sentinel.conf):

sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
  • down-after-milliseconds mymaster 5000:如果 5 秒内主节点无响应,认为其不可用。
  • failover-timeout mymaster 60000:Sentinel 允许 60 秒内完成故障转移。

2️⃣ Redis Sentinel 报错分析

🚨 问题 1:Redis 日志报 failover-timeout

🔍 可能原因
  • 副本同步未完成,Sentinel 不能立即选出新的主节点。
  • 网络抖动,导致 Sentinel 误判主节点宕机。
  • Sentinel 数量不足,无法进行有效投票。
✅ 解决方案

1️⃣ 检查 Redis 副本同步状态

kubectl exec -it redis-master-0 -- redis-cli INFO replication

如果 connected_slaves: 0,说明没有可用副本,Sentinel 可能无法完成切换。

2️⃣ 增大 failover-timeout

sentinel failover-timeout mymaster 120000  # 增加至 120 秒

然后重启 Sentinel:

kubectl delete pod -l app=redis-sentinel

3️⃣ 检查 Sentinel 是否足够

kubectl get pods -l app=redis-sentinel

如果 num-other-sentinels: 0,需要增加副本:

spec:replicas: 3  # 至少 3 个 Sentinel

🚨 问题 2:Spring Boot 连接 Redis Sentinel 一直报 addedis down

🔍 可能原因
  • spring.redis.sentinel.master 配置错误,导致 Spring Boot 连接不上 Redis Sentinel。
  • sentinel.confmymaster 拼写错误,导致 Sentinel 无法正确发现主节点。
✅ 解决方案

1️⃣ 检查 sentinel.conf 配置

kubectl exec -it redis-sentinel-0 -- redis-cli -p 26379 SENTINEL MASTER mymaster

如果 mymaster 不存在,说明 Sentinel 配置错误。

2️⃣ 检查 Spring Boot 配置

spring:redis:sentinel:master: mymaster  # 必须和 Sentinel 配置一致nodes:- redis-sentinel-0:26379- redis-sentinel-1:26379- redis-sentinel-2:26379password: yourpassword

3️⃣ 调整 timeout 以减少误判

spring:redis:timeout: 5000lettuce:pool:max-active: 10max-wait: 5000

3️⃣ Redisson 连接 Redis Sentinel 配置

Redisson 是一个高效的 Redis 客户端,支持 Redis Sentinel 模式。

🚀 依赖

pom.xml 中引入:

<dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.23.2</version>
</dependency>

🚀 配置 RedissonClient

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RedissonConfig {@Beanpublic RedissonClient redissonClient() {Config config = new Config();config.useSentinelServers().setMasterName("mymaster").addSentinelAddress("redis://redis-sentinel-0:26379","redis://redis-sentinel-1:26379","redis://redis-sentinel-2:26379").setPassword("yourpassword").setTimeout(5000).setConnectTimeout(10000);return Redisson.create(config);}
}

4️⃣ 测试 Redisson 连接

import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RedisController {private final RedissonClient redissonClient;public RedisController(RedissonClient redissonClient) {this.redissonClient = redissonClient;}@GetMapping("/set")public String set(@RequestParam String key, @RequestParam String value) {RBucket<String> bucket = redissonClient.getBucket(key);bucket.set(value);return "Set " + key + " = " + value;}@GetMapping("/get")public String get(@RequestParam String key) {RBucket<String> bucket = redissonClient.getBucket(key);return "Get " + key + " = " + bucket.get();}
}

5️⃣ 可能的错误 & 解决方案

Unable to connect to Redis Sentinel

✅ 解决方案

  • 检查 Sentinel 是否正常运行

    kubectl get pods -l app=redis-sentinel
    

    如果 Sentinel Pod 挂了,需要重新启动。

  • 手动测试 Sentinel

    redis-cli -p 26379 SENTINEL MASTER mymaster
    

    如果 mymaster 不存在,说明 Sentinel 配置有误。


🔎 总结

🚀 Redis Sentinel + Redisson 高可用方案的关键要点:
1️⃣ Redis Sentinel 需配置正确mymaster 名称需一致,failover-timeout 需足够长。
2️⃣ Spring Boot 连接 Redis Sentinel 时spring.redis.sentinel.master 需要匹配 Sentinel 配置。
3️⃣ Redisson 连接 Sentinel 需要手动配置 RedissonClient,并保证 sentinel.conf 正确。
4️⃣ 故障排查时,手动执行 SENTINEL MASTER mymaster,检查主节点状态。

📢 如果你仍然遇到问题,可以提供 redis-cliSENTINEL MASTER mymaster 输出,我可以帮你分析!🚀


文章转载自:

http://TZIyk6vz.yrngx.cn
http://oKgDCuFG.yrngx.cn
http://CA9YSrlR.yrngx.cn
http://z8mWieHj.yrngx.cn
http://rOoM17E6.yrngx.cn
http://7IBa8Rei.yrngx.cn
http://R1RCzsj1.yrngx.cn
http://MquO28MZ.yrngx.cn
http://U3D0yweP.yrngx.cn
http://izFAIquS.yrngx.cn
http://aJ9FtBaZ.yrngx.cn
http://fO3EsOfn.yrngx.cn
http://MZ1TKeWg.yrngx.cn
http://5rOJO2YL.yrngx.cn
http://oMfCDmaB.yrngx.cn
http://3bAxfsNU.yrngx.cn
http://vV8zfyqS.yrngx.cn
http://uyEYdG66.yrngx.cn
http://puRE3vlF.yrngx.cn
http://42CtTRao.yrngx.cn
http://txMdEq39.yrngx.cn
http://FWdFjtKY.yrngx.cn
http://W2jmJnkO.yrngx.cn
http://hMOayPEA.yrngx.cn
http://rKZqD2ec.yrngx.cn
http://i3TsC1oG.yrngx.cn
http://AlmdOXso.yrngx.cn
http://De2GtV2z.yrngx.cn
http://BKflORaL.yrngx.cn
http://wNR8RHMo.yrngx.cn
http://www.dtcms.com/wzjs/681943.html

相关文章:

  • 常州市经开区建设局网站长沙寸金网络营销网址
  • 网站定制网页设计wordpress多个内容模块
  • 编程网站项目做哪个比较好厦门app网站设计
  • 2018春节放假安排 网站建设网站排名优化快速
  • 不要验证码的广告网站《梦幻西游》官网
  • 电子商务网站总体框架设计2018网站建设合同范本
  • 百度公司做网站优化多少钱成都全程网络营销策划机构
  • 广州专业网站建设公司爱美刻在线制作网站
  • 英文网站建设运营连云港seo
  • 9861云南网站建设网站不备案做电影网站
  • 做网站的空间和服务器黄浦集团网站建设
  • 网站建设相关的网站网站开发资金投入
  • 网站建设技术清单在网站中添加搜索引擎
  • 上海企业免费建站wordpress开源企业主题
  • 网站规划主要内容网站建设创业规划书
  • 网站销售怎么做的做什么软件做网站效率最好
  • 杭州网站建设哪里好wordpress在本地运行很慢
  • 高端网站建设哪些好企业信用信息查询系统官网(全国)
  • asp.net网站制作视频教程室内设计公司取名字大全集
  • 如乐网站太原市建设交易中心网站首页
  • 电子商务平台的功能有哪些东莞seo关键词
  • 网站开发成本报表电商运营岗位职责
  • 网站搭建公司哪家好网站开发详细报价
  • 彩票类网站是如何做代理的两个wordpress共用一个数据库
  • 平台网站建设 厦门找网页模板的网站
  • 打开网站显示404wordpress自动采集发布
  • 交互式网站模板东莞网站建设 拉伸膜
  • 网站开发 售后服务协议中文域名网站
  • 石家庄市网站建设家教网站如何建设
  • 站群系统软件福州天成设计