自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 异步线程传递MDC信息与异常捕获

为了解决开启异步线程后,日志非常难找的问题,我们继承了Spring的AsyncConfigurer,并重写了getAsyncExecutor方法,这样在Spring中使用@Async注解开启异步线程,会自动传递MDC信息给子线程,具体代码放在文章最后.4.重写getAsyncExecutor方法时,在runnable.run()代码块上使用try/catch,可以捕获方式A,B,C开启的异步。5.使用try/catch包裹整个runnable函数式接口,这样可以捕获A,B,C,D开启的异步。

2024-05-16 18:21:41 887 2

原创 使用行锁解决事务不可重复读问题

这是一个很典型的不可重复读问题,解决这个问题的方法有很多,比如把a.2放到a方法的最后一步,b方法的更新不要使用updateById,只更新部分字段等等,这里博主给出另一种解法,使用行锁解决,下面提供代码实现。但是实际上生产后,代码的流程是a.1=>a.2=>b.1=>a.3=>b.2,这样会导致一个问题,执行b.1代码的时候会读到a方法还未提交的状态,导致执行b.2代码的时候,会覆盖掉a事务已提交的数据。如图,期望是走完a方法,之后,再走b方法,且在非生产环境都没有发生问题.

2024-01-09 15:49:26 510 1

原创 flink cdc全量阶段拉取数据过多导致java heap space

排查到这张表的单条数据非常大,有个字段时text类型,而flink cdc 拉取数据是用select *去拉取的,导致查出来的数据非常多,且这些数据全部在内存中。数据因数=(主键最大值 - 最小值) / 估算的数据行数,注意,这里数据行数是用 SHOW TABLE STATUS 查出来的,取得是Rows字段。使用阿里云flink实时计算平台,全新启动flink作业后,作业不报错,无任何异常,也不拉取数据.实际启动的时候可以根据表的相关数据计算内存应该给到多少,也可以缩小chunk的size.

2023-05-22 16:42:48 1304 2

原创 Mysql在sql中使用where column in (0),如果column为varchar类型且数据中不包含数字,此条件等于1=1

具体的转换规则如下:当字符串被转为数字时,Mysql会从字符串的左边开始,尽可能多的查找可以构成有效数字的字符(包括正负号,数字,小数点,科学计数法中的e或者E),当遇到第一个无法识别为数字的字符时,转换就会停止,剩下部分被舍弃,例如,字符串'123abc'会被转换为123,而字符串'abc123'会被转换为数字0,因为它的最左边没有数字.如果column是varchar类型,但是在in语句中使用了一个整数,Mysql会尝试将varchar类型转换为整数类型来进行比较.

2023-05-22 16:18:19 344 1

原创 记录一次阿里云flink生产故障

flink,未知column type导致空指针,作业异常

2023-02-22 15:54:45 1829 2

原创 Es的针对于nested类型的多重子聚合

es关于nested类型的聚合,以及过滤聚合

2022-12-12 11:12:43 1843

原创 spring boot项目配置mq多数据源

解决mq多数据源下的报错问题

2022-11-23 11:27:51 731

原创 基于阿里云实时计算Flink开发实战

使用flink datastream做实时同步

2022-10-31 17:31:17 2715

原创 比较两颗同源树的最细粒度区别

比较两颗同源树的最细粒度区别

2022-10-31 15:34:42 239

原创 抖音视频去水印

基于httpclient实现在线下载抖音去水印后的视频DeleteWatermarkController.java@Controller@Slf4jpublic class DeleteWatermarkController { private final static String ERROR = "error"; private final static String LINK_PREFIX = "https://v.douyin.com/"; privat

2021-12-08 15:29:20 3117 4

原创 手写简单的SSM框架

框架的本质就是反射+注解+设计模式,本文旨在实现简单的SSM框架,帮助大家理解真正的框架思想,关于Spring的AOP部分,有不懂的童鞋可以看博主的另一篇帖子:手写JDK动态代理并实现Spring的各类通知首先是Spring的容器部分:ClassPathXmlApplicationContext.javaimport org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c

2021-12-02 16:10:03 491

原创 手写JDK动态代理并简易实现Spring的各类通知

实现原理是在本地生成一个.java文件,再使用jdk自带的javax.tools.JavaCompiler类在程序运行过程中编译运行生成的java文件,加载到内存中。MyProxy.javaimport javax.tools.JavaCompiler;import javax.tools.StandardJavaFileManager;import javax.tools.ToolProvider;import java.io.File;import java.io.FileWriter

2021-11-30 15:52:52 369

原创 基于http使用feign封装阿里云短信

目前项目太多地方调用短信服务,微服务与微服务之间太多冗余代码,维护起来也不方便。项目中也会更改第三服务,由于多数时用spring-boot框架开发,这里封装一下短信服务,使用的时候只需要修改配置文件引入微服务即可。SmsUtils.java@Component@Slf4jpublic class SmsUtils { @Autowired private SmsFeignClient smsFeignClient; @Value("${sms.signName}"

2021-11-30 15:04:24 810

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除