这里是

日常总结与记录点滴的地方

Paul

一枚程序员

在时代的潮流中接触到计算机技术

期望能够用技术给生活带来便利

也希望分享的内容能给别人带来帮助

Kafka 队列积压引发的问题

最近在生产环境的 Skywalking 监控统计数据中发现某个方法平均每分钟调用 5 万次,远远超出了预期。因为这个方法与 Kafka 消费者相关,于是排查 Kafka 的相关统计数据,发现该队列在这个时间段内有数据积压。

October 25, 2024

本地缓存Caffeine

介绍 Caffeine 是基于Java 1.8 的高性能本地缓存库,由 Guava 改进而来,而且在 Spring5 开始的默认缓存实现就将 Caffeine 代替原来的Google Guava,官方说明指出,其缓存命中率已经接近最优值。

October 23, 2024

设计百万链路服务

状态码 301 和 302 的区别 301 301 是永久重定向。301 跳转会默认被浏览器缓存,当用户第一次访问某个短链后,如果服务器返回 301 状态码,则这个用户在后后续多次访问同一短链接地址,浏览器会直接请求缓存中的跳转地址,不会再请求短链服务重新获取地址。这么做的优点是降低了服务器的压力,但是无法统计短链接的点击次数。

October 22, 2024

Kafka 报 InvalidPidMappingException 问题解决

有个开发组不时地在测试环境中遇到下面的问题: Caused by: org.apache.kafka.common.errors.InvalidPidMappingException: The producer attempted to use a producer id which is not currently assigned to its transactional id 经过排查发现,这个开发组在代码中使用了 Kafka 的事务。这个错误的抛出与使用了事务有关系。

January 16, 2024

通过SpringGateway对接口请求进行加解密

有个需求,要求在前端调用接口时,将请求数据与响应数据做加密。做了一下调研,可以用下面的方式来实现: public class EncryptGatewayFilter implements GlobalFilter, Ordered { private static final String BODY_ENCRYPT_HEADER = "X-ENCRYPTED"; private static final String ENCRYPT_VERSION_1 = "1.0"; @Override public int getOrder() { return -99; } @Override public Mono<Void> …

January 9, 2024