技术博客

Kafka 队列积压引发的问题

Kafka

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

更多 →

October 25, 2024

本地缓存Caffeine

缓存Caffeine

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

更多 →

October 23, 2024

设计百万链路服务

短链面试分布式系统

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

更多 →

October 22, 2024

Kafka 报 InvalidPidMappingException 问题解决

kafka事务

有个开发组不时地在测试环境中遇到下面的问题: 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对接口请求进行加解密

Spring Cloud网关安全

有个需求,要求在前端调用接口时,将请求数据与响应数据做加密。做了一下调研,可以用下面的方式来实现: 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

不安全的http方法

http安全

在安全扫描工具中,会验证服务器是否开启了不安全的 http 方法。 从资源的角度看,GET、HEAD、OPTIONS、TRACE,这些方法不会产生什么动作,不会在服务器上产生结果,只是简单获取信息。相对的,能产生动作的方法就会被认为是不安全的HTTP方法。

更多 →

December 25, 2023

数据查询ES设计演变

elastic search

这里总结一下过去曾参与的一个系统中,对于订单查询设计的演变过程 第一阶段:仅数据库查询 这个是最初始的阶段,数据查询直接走数据库查询。这种方式会完全依赖于数据库的性能,随着数据越来越来,查询效率也会越来越低

更多 →

December 22, 2023

Docker挂载文件,宿主机修改后容器里文件没有同步更新

docker挂载

问题描述 使用 Docker 时,有时需要挂载一个宿主机目录或者文件。但是有时候发现通过 vi 或者 vim 修改完宿主机上的文件之后,容器中对应的文件并没有变化,看不到修改的内容。

更多 →

December 13, 2023

JVM 参数项区别:-D、-X、-XX

jvm

JVM 包含多种不同类型的参数选项: -D 用来设置系统属性,属于标准选项 -X 设置非标准选项,支持的选项范围跟具体的 JVM 实现有关 -XX 设置高级选项,允许开发者调整 JVM 的行为、性能、输出调试信息,支持的选项范围也跟具体的 JVM 实现有关 标准选项(standard options)-D 标准选项是所有 JVM 实现都会支持。在控制台输入 java 这个命令,除了能看到 java 命令的使用手册,还能看到机器上默认的 JVM 所支持的所有标准选项。

更多 →

December 7, 2023

企业微信调试工具

企业微信调试fiddler抓包

请参考企业微信开发者中心的文档:常见问题#客户端调试 这个工具目前有个局限性,它只适用于企业微信浏览器加载完页面之后,才能可以介入排查问题,因为在此之前无法打开企微浏览器的开发者工具。如果要测试企微单点登录的问题,还是要借助于 fiddler 等抓包工具。

更多 →

December 7, 2023

Spring Boot 自动设置响应头引发的问题

Spring Boot

在某次排查问题的时候,发现接口返回值的 Response Header 中居然多了下面这个值。 Content-Disposition:inline;filename=f.txt Content-disposition 是 MIME 协议的扩展,它指示 MIME 用户代理如何显示附加的文件。上面的值就相当于告诉客户端将文件内容直接显示在页面,同时这个文件名为 f.txt。

更多 →

November 29, 2023

On-Premise 与 Private Cloud 区别

本地部署私有云

On-Premises 与 Private Cloud 有一定的区别: On-Premises 可以认为是本地部署,本地数据中心是指位于组织场所的物理基础设施。这些数据中心由组织的 IT 团队构建和维护,可以完全控制基础设施和数据管理流程。数据中心可以定制以满足特定需求,并且只能由授权人员访问。 Private Cloud 是私有云部署。私有云是虚拟化环境,提供与本地数据中心相同的功能。然而,与本地数据中心不同,私有云托管在远程基础设施上,可以从任何有互联网连接的地方访问。私有云可以由组织的 IT 团队或第三方服务提供商管理。 这两种方法都有其优点和缺点,需要权衡它们以确定哪种方法最适合自己的组织。以下是一些需要考虑的关键因素:

更多 →

November 9, 2023

不用魔法直接访问 New Bing

BingGPT4

微软的 new bing 已经接入 GPT-4, 这几天已经开放给用户免费免费,不用预约排队体验。但是大陆地区无法直接访问,即使安装了Edge 的 dev 版本也没用,需要借助工具。但是呢,即使通过魔法可能也无法访问,因为 ip 可能在微软的黑名单中。

更多 →

May 8, 2023

鼠标滚轮上下乱跳

鼠标滚轮维修

最近使用鼠标时候,发现滚轮失灵,滚动时一直上下乱跳。原先想是不是只能换鼠标了,但查了网上的资料,说是滚轮编码器的问题。参照网上的说法,拆开鼠标,用酒精擦拭滚轮解码器脏的地方,重新装好,果然鼠标复活了。

更多 →

May 7, 2023

更换安卓智能车机

wince安卓车机导航

最近自己动手改装了车子的大屏导航,之前花了一些时间查了一些资料,也参考了网上不少的帖子,很有帮助。所以特定把它记录一下,希望对其他人也有一定的帮助。

更多 →

February 26, 2023

DBeaver自定义JDK路径

dbeaver

新版的DBeaver需要JDK 11才能执行,如果机器中默认的JDK版本低于11,那启动的时候就会报错。 除了将默认的JDK版本设置成11以上版本之外,还有办法就是修改DBeaver配置文件中的启动参数。

更多 →

July 23, 2021