logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

连接池剖析及连接泄漏定位思路

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

文章图片
#java#网络#开发语言
Jedis分析一-Pipeline is currently not supported for JedisClusterConnection.

项目组最近准备将Redis由哨兵模式组网切换到集群组网,切换后应用访问redis时报错,“Pipeline is currently not supported for JedisClusterConnection.”。初步定为Jedis在集群模式下不支持pipeline。org.springframework.data.redis.connection.jedis.JedisClusterCon

#redis#java
redis集群模式下key过期事件监听

项目组准备将自建的redis切到公司云平台的redis服务;自建的redis用的是哨兵模式,而云平台的提供的redis服务用的是集群模式。切换前先分析redis用到了那些功能,redis集群模式下是否兼容。分析代码时发现,用到了RedisMessageListenerContainer,该类用于监听redis发出的消息(redis的发布订阅功能)。我们使用到了redis键过期通知的特性,来实现超时

#redis#java
ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]

我司有一套开源使用规范,衰退期的软件或版本需要升级到GA版本。我们ES服务端是6.8.x的,根据ES官方推荐版本,springdataelasticsearch使用的是3.2.x,配套的springboot版本为2.2.x.我们当前使用的版本已经比较老了,我们需要将springboot升级到2.6.x,并将springdataelasticsearch升级到4.3.x。..............

#elasticsearch#java
nginx proxy_pass转发规则解析

综述nginx官方网站讲解proxy_pass时,只给了规则的说明,并没有给出具体的示例辅助理解。对于英语不太好的人,理解起来真的很头痛,只能通过测试来验证对英文意思的猜测。nginx对proxy_pass的官方说明见http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass其将proxy_pass的转发规则分为3类:ur

#nginx
浏览器跨域详解

当前流行前后端分离,很多时候前端域名与后端域名不一致,导致请求跨域被浏览器拦截。浏览器控制台出现以下提示页面发起跨域请求后,浏览器会先发起预检请求,预检通过后,在发起正式请求。如果预检请求不过,浏览器就会停止后面的业务请求,导致访问失败。解释跨域拦截是浏览器的行为与服务端无关,浏览器仅仅只是检查服务端的响应中是否包含跨域头,至于这个头是java服务生成的,还是nginx生成的都可以。我们的组网如上

#nginx#前端#http
nginx配置文件目录

背景想把服务器上nginx配置文件下载到本地使用vscode打开看的时候,发现进程参数中未指定配置文件目录。于是查看nginx官网,nginx默认配置文件目录为 /usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx.然后去上述目录都看一下还是没找到。解决方案nginx -t可以查看配置文件实际使用的目录nginx: the confi

#nginx
暂无文章信息