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

长兴县住房建设局网站wordpress 知识共享

长兴县住房建设局网站,wordpress 知识共享,WordPress空间换到万网,网站开发工资一般多少钱一 lettuce使用问题 1 问题描述 Redis Cluster集群#xff0c;当master宕机#xff0c;主从切换#xff0c;客户端报错 timed out 2 原因 SpringBoot2.X版本开始Redis默认的连接池都是采用的Lettuce。当节点发生改变后#xff0c;Letture默认是不会刷新节点拓扑的。 3…一 lettuce使用问题 1 问题描述 Redis Cluster集群当master宕机主从切换客户端报错 timed out 2 原因 SpringBoot2.X版本开始Redis默认的连接池都是采用的Lettuce。当节点发生改变后Letture默认是不会刷新节点拓扑的。 3 解决方案 3.1 方案一把lettuce换成jedis 推荐版本jedis 2.9 只需要在pom.xml里调整一下依赖的引用 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdversion2.1.5.RELEASE/version!-- 不用lettuce ,用jedis --exclusionsexclusiongroupIdio.lettuce/groupIdartifactIdlettuce-core/artifactId/exclusion/exclusions/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion3.1.0-m4/version/dependency3.2 方案二刷新节点拓扑视图 Redis节点异常服务端的Redis集群拓扑被刷新了Java程序没有获取到新的拓扑。 Lettuce官方文档中关于Redis Cluster的相关说明Lettuce处理Moved和Ask永久重定向由于命令重定向你必须刷新节点拓扑视图。而自适应拓扑刷新Adaptive updates与定时拓扑刷新Periodic updates是默认关闭的可以通过如下代码打开。 https://github.com/lettuce-io/lettuce-core/wiki/Redis-Cluster#user-content-refreshing-the-cluster-topology-view 修改代码如下 package com.montnets.common.redis;import io.lettuce.core.ClientOptions; import io.lettuce.core.cluster.ClusterClientOptions; import io.lettuce.core.cluster.ClusterTopologyRefreshOptions; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.data.redis.RedisProperties; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.connection.RedisClusterConfiguration; import org.springframework.data.redis.connection.RedisNode; import org.springframework.data.redis.connection.RedisPassword; import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration; import org.springframework.stereotype.Component;import java.time.Duration; import java.util.HashSet; import java.util.List; import java.util.Set;Component public class RedisPoolConfig {Autowiredprivate RedisProperties redisProperties;public GenericObjectPoolConfig? genericObjectPoolConfig(RedisProperties.Pool properties) {GenericObjectPoolConfig? config new GenericObjectPoolConfig();config.setMaxTotal(properties.getMaxActive());config.setMaxIdle(properties.getMaxIdle());config.setMinIdle(properties.getMinIdle());if (properties.getTimeBetweenEvictionRuns() ! null) {config.setTimeBetweenEvictionRunsMillis(properties.getTimeBetweenEvictionRuns().toMillis());}if (properties.getMaxWait() ! null) {config.setMaxWaitMillis(properties.getMaxWait().toMillis());}return config;}Bean(destroyMethod destroy)public LettuceConnectionFactory lettuceConnectionFactory() {//开启 自适应集群拓扑刷新和周期拓扑刷新ClusterTopologyRefreshOptions clusterTopologyRefreshOptions ClusterTopologyRefreshOptions.builder()// 开启全部自适应刷新.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常// 自适应刷新超时时间(默认30秒).adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //默认关闭开启后时间为30秒// 开周期刷新.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2)).build();// https://github.com/lettuce-io/lettuce-core/wiki/Client-OptionsClientOptions clientOptions ClusterClientOptions.builder().topologyRefreshOptions(clusterTopologyRefreshOptions).build();LettuceClientConfiguration clientConfig LettucePoolingClientConfiguration.builder().poolConfig(genericObjectPoolConfig(redisProperties.getJedis().getPool()))//.readFrom(ReadFrom.MASTER_PREFERRED).clientOptions(clientOptions).commandTimeout(redisProperties.getTimeout()) //默认RedisURI.DEFAULT_TIMEOUT 60.build();ListString clusterNodes redisProperties.getCluster().getNodes();SetRedisNode nodes new HashSetRedisNode();clusterNodes.forEach(address - nodes.add(new RedisNode(address.split(:)[0].trim(), Integer.valueOf(address.split(:)[1]))));RedisClusterConfiguration clusterConfiguration new RedisClusterConfiguration();clusterConfiguration.setClusterNodes(nodes);clusterConfiguration.setPassword(RedisPassword.of(redisProperties.getPassword()));clusterConfiguration.setMaxRedirects(redisProperties.getCluster().getMaxRedirects());LettuceConnectionFactory lettuceConnectionFactory new LettuceConnectionFactory(clusterConfiguration, clientConfig);// lettuceConnectionFactory.setShareNativeConnection(false); //是否允许多个线程操作共用同一个缓存连接默认truefalse时每个操作都将开辟新的连接// lettuceConnectionFactory.resetConnection(); // 重置底层共享连接, 在接下来的访问时初始化return lettuceConnectionFactory;} }二 哨兵模式使用问题 1 问题描述 Redis Sentinel模式应用代码里只配置master节点当master宕机主从切换客户端报错 2 解决方案 通过哨兵连接节点应用连接配置master name应该和实例名称保持一致
http://www.pierceye.com/news/844012/

相关文章:

  • 卢松松网站的百度广告怎么做的小程序开发成都公司
  • 导航网站头部代码android开发者官网
  • 网站设计需求分析报告做漫画的网站有哪些
  • 做什么网站吸引人sinaapp wordpress 固定链接
  • 东莞做网站怎么样搜狐综合小时报2022113011
  • 校园网站的意义融资渠道
  • 做网站上海公司自己制作一个网站需要什么软件
  • 铜川做网站电话app开发程序
  • 自助建微网站备案后修改网站名称
  • 免费网站正能量网站如何后台管理
  • 网站开发的质量标准网站如何做自适应
  • 黄南州wap网站建设公司wordpress里面怎么加链接
  • 五分钟自己创建网站的方法免费试用网站空间
  • 安徽平台网站建设找哪家辽宁建设工程信息网审核
  • 余姚住房和建设局网站10元备案域名购买
  • 企业网站制作公司盈利做支付行业招代理一般上什么网站
  • 网站制作电话wordpress支持PHP吗
  • 天津网站推广宣传拓者设计吧室内设计
  • 建设 信用中国 网站淘宝购物
  • 义乌论坛网站建设怎样建设智能网站
  • 重庆做网站 外包公司建设校园网站的必要性
  • 做我女朋友好不好套路网站html5网页设计实训总结
  • 怎样给网站登录界面做后台seo研究中心官网
  • 养生类网站源码dreamwear网页制作
  • 北京装修平台网站网页设计公司企业文化
  • 上海临平路网站建设网站建设设计制作方案与价格
  • seo三人行网站免费电商网站建设
  • seo蒙牛伊利企业网站专业性诊断.win域名做网站怎么样
  • 微信、网站提成方案点做网站建设当中的技术解决方案
  • 云南省住房和城乡建设厅官方网站网站哪里可以查到做ddos