0%

前言

面试中被问到 “1 亿玩家实时排名如何实现”,90% 的开发者只会说 “用 Redis”,但能讲清分片策略、同分数排序、性能优化 的人不足 10%。

这个问题的核心诉求远不止 “能用 Redis”,而是要满足:

  • 排名毫秒级实时更新(玩家分数变化立即反映);
  • 高并发查询(百万 QPS 下排名查询不卡顿);
  • 海量数据支撑(1 亿玩家无性能瓶颈);
  • 边界场景兼容(同分数、跨分片全局排名)。

在游戏、直播等互联网场景中,实时排名系统是提升用户参与感和刺激竞争的核心功能。本文将从零开始,详细讲解如何设计并实现一个支持1亿玩家、高并发实时更新的排名系统。

阅读全文 »

前言

之前已经讲过2篇接口防刷的文章:《别再让接口被刷爆了!资深架构师的防刷实战笔记,附完整代码1》、《别再让接口被刷爆了!资深架构师的防刷实战笔记,附完整代码2》,都是我们自己实现lua脚本的,包含算法

  • 固定窗口计数器算法
  • 令牌桶限流
  • 漏桶限流
  • 滑动时间窗口限流

今天再加一篇吧,我们不用自己实现lua脚本了,直接用现成的限流类就行。

阅读全文 »

谁懂啊!做小程序或 App 时,想加个抽奖、桌游类互动功能,一个酷炫的 3D 骰子真的能拉满氛围感✨。今天就给大家分享一个我珍藏的 Uniapp 骰子组件,不仅能直接用,还能随心定制样式,新手也能轻松拿捏。咱们不搞晦涩术语,就像拆玩具一样,一步步摸清它的构造!

一、先看效果

先放个“成品预告”,让大家有直观感受:

阅读全文 »

年底一到,总有朋友追着问:“明年我犯不犯凶星?”“为啥同个生肖有人说犯官符,有人说犯天狗?”“怎么自己算流年神煞,不被忽悠?”

其实老祖宗传下来的 “流年神煞计算” 一点都不复杂,核心就 3 个基础概念 + 1 个排盘规则,今天我把这套逻辑拆到 “小白能上手算” 的程度,从神煞含义到计算方法,从单凶到叠凶,一篇讲透!

阅读全文 »

每天在Linux终端敲命令,谁没依赖过Tab键的命令补全?输入cd /ho按Tab自动补全成cd /home/,输入$JAV按Tab秒出$JAVA_HOME——这个小功能帮我们省了无数记参数、拼路径的时间。

但你有没有想过:这背后是怎么实现的?更重要的是,自己写的运维脚本(比如服务管理、系统查询脚本),能不能也加上这种“Tab补全buff”?

今天就从底层逻辑到实操落地,把Linux脚本参数补全讲透。不管是日常运维还是团队协作,学会这招能让你的脚本从“能用”直接升级到“好用”,大幅降低操作成本。

阅读全文 »

概述

在日常的 Kubernetes 开发和运维工作中,频繁查看容器日志是必不可少的一环。然而,原生的 kubectl logs命令在实际使用中存在诸多不便:

  • Pod 标识不稳定:Pod 重启后名称会变化,需要重新查找
  • 命令冗长繁琐:每次都需要指定命名空间、Pod 名称等参数
  • 缺乏交互体验:多实例情况下需要手动选择,无颜色高亮
  • 功能受限:简单的日志查看,缺乏过滤、分页等高级功能

为此,我封装了一个 klog.sh工具,极大提升了 Kubernetes 日志查询的效率和体验。

阅读全文 »

引言

还在用“传参大法”吗?

userIdtraceIdpageNo从Controller一路传到Service,再传到Repository?你的方法签名是不是已经长到看不清,代码里到处是重复的取值和校验?

这不是优雅,这是“参数包袱”。它让代码臃肿、难以测试,更在异步编程时直接“瘫痪”。

阅读全文 »

在分布式系统中,雪花算法(Snowflake)生成的ID无疑是我们的得力助手。但当我们面对这样一长串数字时:1234567890123456789,是否曾感到它在URL、二维码或用户界面中显得过于“臃肿”?

我们如何在保持其分布式优势的同时,让它变得短小精悍?本文将带你深入Base62编码的奇妙世界。

阅读全文 »

一、什么是Jasypt?

Jasypt(Java Simplified Encryption)是一个强大的Java加密库,专门用于简化应用程序中的加密操作。在Spring Boot项目中,我们经常需要处理敏感配置信息(如数据库密码、API密钥等),Jasypt可以帮助我们加密这些敏感配置,避免明文存储的安全风险。

阅读全文 »