摘要:
在使用spring事务时,我们通常会把事务内的所有操作当成是一个原子操作。也就是当整个事务内的所有代码都执行完成后, 才会将所有的数据落实到数据库中。这样做有时也会给我们造成麻烦。比如以下场景: 根据图中描述的逻辑,如果我们把前两步封装到一个事务方法中,会造成当第三方服务回调我们服务时,我们根据id 阅读全文
摘要:
前言 阿里的Pandora Boot的核心是Pandora,因此在介绍Pandora Boot之前需要先介绍Pandora。 在阿里集体内部,几乎所有的应用都用到了各式各样的中间件,比如HSF、TDDL、Diamond等等。本身中间件之间可能就有版本依赖的问题,比如你的应用HSF和Diamond分别 阅读全文
摘要:
JetBrains公司的intellij Idea堪称JAVA编程界的苹果,用户体验非常好 下面介绍一下IDEA的一个能显著提升写代码效率的非常好用的功能设置—— Auto Import Auto Import的功能是可以帮助我们自动删除无用的包Import(未被引用),以及自动Import填充尚未 阅读全文
reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response解决方案
摘要:
一、背景可能大家在使用Spring Cloud Gateway构建微服务网关的时候,过五关斩六将,Reactor没能难倒我们,链路追踪没能难倒我们,最后在上线之后发现许多奇妙的问题,这些奇妙的问题还无从下手,比如这个堆栈,深入使用过SCG的人一定不会陌生: reactor.netty.http.cl 阅读全文
reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response解决方案
摘要:
一、背景 可能大家在使用Spring Cloud Gateway构建微服务网关的时候,过五关斩六将,Reactor没能难倒我们,链路追踪没能难倒我们,最后在上线之后发现许多奇妙的问题,这些奇妙的问题还无从下手,比如这个堆栈,深入使用过SCG的人一定不会陌生: reactor.netty.http.c 阅读全文
摘要:
一 前言 工欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍如何读懂死锁日志,尽可能的获取信息来辅助我们解决死锁问题。二 日志分析2.1 场景 为了更好的学习死锁日志,我们需要提前了解死锁场景MySQL 5.6 事务隔离级别为RR CREATE 阅读全文
摘要:
Spring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try catch或者事务嵌套,可能会导致事务回滚失败。测试一波。 准备 建两张表,模拟两个数据操作 CREATE TABLE `user` ( `id` int(11) N 阅读全文
摘要:
前言 EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。 观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送、短信、通知卖家、买家等等;审批系统中,审批单的流程流转会通知发起审批用户、审批的领导等等。 阅读全文
摘要:
SpringBoot自定义配置 springboot在这里就不过多介绍了,大家都应该了解springboot零配置文件,所以配置信息都装配在属性文件(properties、yml、yaml)中,有时我们自己也需要定义一些配置,接下来小编就简单介绍一下springboot自定义配置。 配置类 首先通过 阅读全文
摘要:
在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能。 Spring Boot中的使用 在Spring Boot的源码中,比如涉及到Http编码的自动配置、数据源类型的自动配置等大量的使用到了@Conditional 阅读全文