ruby

你知道微服务架构中的“发件箱模式”吗
你知道微服务架构中的“发件箱模式”吗

前言微服务架构如今非常的流行,这个架构下可能经常会遇到“双写”的场景。双写是指您的应用程序需要在两个不同的系统中更改数据的情况,比如它需要将数据存储在数据库中并向消息队列发送事件。您需要保证这两个操作都会成功。如果两个操作之一失败,您的系统可能会变得不一致。那针对这样的情况有什么好的方法或者设计保证

2023-01-11 11:09:59阅读全文

为什么 java 容器推荐使用 ExitOnOutOfMemoryError
为什么 java 容器推荐使用 ExitOnOutOfMemoryError

前言好久没写文章了, 今天之所以突然心血来潮, 是因为昨天出现了这样一个情况:我们公司的某个手机APP后端的用户(customer)微服务出现内存泄露, 导致OutOfMemoryError, 但是因为经过我们精心优化的openjdk容器参数, 这次故障对用户完全无感知. 那么我们是如何做到的呢?H

2023-01-11 07:28:34阅读全文

7min到40s:SpringBoot启动优化实践
7min到40s:SpringBoot启动优化实践

0 背景公司 SpringBoot 项目在日常开发过程中发现服务启动过程异常缓慢,常常需要6-7分钟才能暴露端口,严重降低开发效率。通过 SpringBoot 的 SpringApplicationRunListener 、BeanPostProcessor 原理和源码调试等手段排查发现,在 Bea

2023-01-12 05:34:40阅读全文

ThreadLocal源码分析
ThreadLocal源码分析

在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。实现思路博主环境:springboot3 、jav

2023-03-20 16:38:13阅读全文

手把手教你验证码检验的登录
手把手教你验证码检验的登录

在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。实现思路博主环境:springboot3 、jav

2023-03-22 01:43:09阅读全文