
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
背景系统原来是使用(HAProxy+Sentinel+redis)做的高可用方案,该方案HAProxy无法感知到主从切换,导致写操作失败。具体可参考之前的文章。为了解决这个问题,拿掉了HAProxy,然后使用Jedis的Sentinel模式。# 代码有删减RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentine

背景最近连续解决两起连接泄漏的问题,期间阅读了大量开源源码,发现开源软件中设计的连接池,用的也都是一些常规手段,本文为大家揭开这层神秘的面纱。概述大多数应用中应该都是用的TCP协议,TCP连接在建立阶段会经过3次握手,销毁阶段会经过4次握手。标准网络是分7层的,每一层都有各自的协议头,应用层拿到的有效数据,在整个报文中占比没这么大。TCP握手阶段的报文,对应用层来讲都是额外的负担。所以很多客户端都

运维接到用户反馈无法登录,拉我上线一起定位。首先我们先拉上用户进行复现,发现登录接口超时导致登录失败。遂让运维先查查有无错误日志,我这边通过啄木鸟(调用链查询系统)确认是哪一段耗时。还未等我打开啄木鸟,运维就发现有大量数据库连接报错。虽然该报错并不是登录服务(下图服务C的)的,但我知道登录接口肯定受这个报错影响了,因此就不再查看啄木鸟直接定位该报错了。且该接口QPS有点高。

spring cloud config server从远古版本升级到3.1.2(对应的spring cloud版本为2021.0.2)后,客户端读取配置失败,服务端报错google报错后发现,对于激活profile的配置包括(spring.profiles.active、spring.profiles.include等),从spring boot2.4开始,不在支持在xx-{profile}.pr

背景项目之前是通过命令行参数-Dlogging.config指定日志配置文件的路径的,后面应用docker化时,需要将这个配置文件打到应用包中,因此翻了下spring boot源码,看都支持哪些路径。spring boot初始化入口如之前文章的分析,spring boot是通过LoggingApplicationListener监听到ApplicationEnvironmentPreparedEv
本系统为客服系统,对接了后端智能辅助系统;当消费者发文字时(问题),本系统会将文字发给辅助系统,辅助系统会返回相关回答,供客服参考。3、4两步均采用的SSE,本系统调用智能辅助时纯透传没有额外逻辑。本来我们系统基于Spring的RestTemplate写了一套类似feign的框架,简化调用后端。
运维接到用户反馈无法登录,拉我上线一起定位。首先我们先拉上用户进行复现,发现登录接口超时导致登录失败。遂让运维先查查有无错误日志,我这边通过啄木鸟(调用链查询系统)确认是哪一段耗时。还未等我打开啄木鸟,运维就发现有大量数据库连接报错。虽然该报错并不是登录服务(下图服务C的)的,但我知道登录接口肯定受这个报错影响了,因此就不再查看啄木鸟直接定位该报错了。且该接口QPS有点高。

背景背景如上一篇文章《request.getRequestDispatcher().forward()的妙用以及DispatcherType 对Filter配置的影响》,项目要将服务从虚拟机从迁入docker中,方便自动化部署以及弹性扩容等。闭坑一-应用看到的ip及port是docker的内部ip、端口,外部无法访问应用看到的是docker内部ip及端口,这个是宿主机虚拟出来的,对外部不可见;如果

项目组最近准备将Redis由哨兵模式组网切换到集群组网,切换后应用访问redis时报错,“Pipeline is currently not supported for JedisClusterConnection.”。初步定为Jedis在集群模式下不支持pipeline。org.springframework.data.redis.connection.jedis.JedisClusterCon
项目组准备将自建的redis切到公司云平台的redis服务;自建的redis用的是哨兵模式,而云平台的提供的redis服务用的是集群模式。切换前先分析redis用到了那些功能,redis集群模式下是否兼容。分析代码时发现,用到了RedisMessageListenerContainer,该类用于监听redis发出的消息(redis的发布订阅功能)。我们使用到了redis键过期通知的特性,来实现超时







