背景 摸清 Redis 的数据清理策略,给内存使用高的被动缓存场景,在遇到内存不足时 怎么做是最优解提供决策依据。 本文整理 Redis 的数据清理策略所有代码来自 Redis version : 5.x, 不同版本的 Redis 策略可能有调整 清理策略 Redis 的清理策略,总结概括为三点,被动清理、定时清理、驱逐清理 被动清理 访问 Key 时,每次都会检查该 Key 是否已过期,如果过期则删除该 Key ,get 、scan 等指...
Sentry Snuba Clickhoue 数据源分析
Clickhouse 库表介绍 Sentry 和数据分析相关的表,只有四张,如下: errors_local : 存储所有的 issue 数据 transactions_local :存储所有的 trace 、span 数据,以及自定义的 measurements sessions_raw_local :存储 session 的原始数据信息,崩溃率的原始数据 sessions_hourly_local :存储 session 的小时粒度的统计聚合信息 分析案例 需求1:以下 SQL 用于实时的分析【启动开屏广告 p95 耗时】 SELECT extract ( ` release ` , \'[...
记 mysql-connector-java:8.0.28 的 bug 排查,你可能也踩坑了
前言 如标题,最终查明问题是因为 mysql-connector-java:8.0.28 的一个 bug 导致的。但是在真相未浮出之前,整个问题可谓扑朔迷离,博主好久没有排查过如此得劲的 bug ,随着一层层的 debug 深入,真相也随之浮出水面。这个问题属于底层 jdbc 驱动的问题,具有普遍性,可能不知不觉中,你的应用也在线上遭受这个 bug 的摧残,所以,请耐心听我讲完这个故事,然后回去检查下你的应用状态,...
基于 Prometheus + Grafana 实现 Nexus 监控观测
前言 Nexus 是开源的 Maven 私服仓库,同时 Nexus 还支持 Npm 、 .Net、Golang 、Python 等开发语言的包管理。Nexus 也是我们重度使用的一个应用,Nexus 保存着 Tap 各开发组的代码构建产物。Nexus 出现问题会导致项目 CI 、CD 流程阻断。本文旨在通过 Prometheus + Grafana 实现 Nexus 运行时监控观测,帮助运维人员更加了解 Nexus ,轻松从容应对线上各种疑难杂症。 Nexus Version:3.29.2-02 metrics 采集 Nexus 提供...
jedis 连接池 jedisPool 的实现原理浅析
前言 文章首发在 osc 了,因为富文本编辑器没法完美兼容,所以偷懒,这里只贴 osc 的地址,也是为了更好的阅读体验。详情信息可以去 osc 查看。 首发链接:https://my.oschina.net/klblog/blog/5520235 摘要: jedisPool 是基于 Apache-commons-pool2 的抽象对象池(objectPool)技术实现的,在 jedisPool 中,一个连接即一个 jedisObject 对象实例。jedisPool 的核心也就是:根据设置的 poolConfig ,围绕连接池容器 LinkedBloc...
SonarQube 的 IdentityProvider 账户互斥原因分析
前言 soanr 是一个代码质量管理系统,代码是开源的。在公司统一认证平台还没出来时,sonar 已接入 ldap 提供系统登录认证功能,现在使用 sonar-auth-oidc 插件以 OIDC 协议接入集中认证平台时,发现用户的账户是互斥的(如果现有用户之前采用 ldap 登录,使用 oidc 登录后会创建一个新的用户,没法关联之前的账户),即使用户的所有信息一致也是如此。本文旨在分析具体原因以及寻求一种...
xxl-job 登入功能集成 OIDC 统一认证
前言 xxl-job 是一款 java 开发的、开源的分布式任务调度系统,自带了登录认证功能,不支持对接、扩展 LDAP 、OIDC 等标准认证系统,考虑到单独维护 xxl-job 自有的用户系统不方便,以及存在人员离职、调岗、权限变动等需要及时调整用户权限的情况,需要接入公司统一的 OIDC 认证系统 相关链接 xxl-job : https://github.com/xuxueli/xxl-job oidc : https://openid.net/connect/ xxl-job 自身认证功能分析 xxl-job ...