Spring5的WebClient使用详解

Spring5的WebClient使用详解

前言 Spring5带来了新的响应式web开发框架WebFlux,同时,也引入了新的HttpClient框架WebClient。WebClient是Spring5中引入的执行 HTTP 请求的非阻塞、反应式客户端。它对同步和异步以及流方案都有很好的支持,WebClient发布后,RestTemplate将在将来版本中弃用,并且不会向前添加主要新功能。 WebClient与RestTemplate比较 WebClient是一个功能完善的Http请求客户端,与RestTemplate相比,WebClient支持以下内容: ...

阅读全文 »

Spring Boot中建议关闭Open-EntityManager-in-view

Spring Boot中建议关闭Open-EntityManager-in-view

前言 一天,开发突然找过来说 KLock 分布式锁失效了,高并发情况下没有锁住请求,导致数据库抛乐观锁的异常。一开始我是不信的,KLock是经过线上大量验证的,怎么会出现这么低级的问题呢?然后,协助开发一起排查了一下午,最后经过不懈努力和一探到底的摸索精神最终查明不是 KLock 锁的问题,问题出在Spring Data Jpa的Open-EntityManager-in-view这个配置上,这里先建议各位看官关闭Open-E...

阅读全文 »

spring boot集成p6spy的最佳实践-p6spy-spring-boot-starter

spring boot集成p6spy的最佳实践-p6spy-spring-boot-starter

前言 P6Spy是一个框架,它可以无缝地拦截和记录数据库活动,而无需更改现有应用程序的代码。一般我们使用的比较多的是使用p6spy打印我们最后执行的sql语句。常用的数据框架也会自带打印sql的功能,比如jpa,mybatis等,但是一般都会有缺陷,比如打印的sql是不带执行参数拼接的sql,这种sql不完整,不具有直接可执行性。所以,p6spy就派上用场了。常见集成p6spy的方式是在资源目录下新...

阅读全文 »

我们的aliyunlog-spring-boot-starter开源了

我们的aliyunlog-spring-boot-starter开源了

前言 日志服务是一个企业软件平台里的重要一环,也有很多可选的成熟方案,比如业界熟知的ELK开源方案。也有很多的云厂商的日志服务产品,比如aliyunlog服务等。我们在综合了资源成本加人工运维成本和日志整体应用后最终选择了aliyunlog服务。为了更好的接入aliyunlog服务,我们开发了aliyunlog-spring-boot-starter,用于在微服务中使用spring boot starter自动装配的特性快速集成。这个不是广...

阅读全文 »

Spring Data Jpa最佳实践

Spring Data Jpa最佳实践

前言 Spring Data Jpa框架的目标是显著减少实现各种持久性存储的数据访问层所需的样板代码量。Spring Data Jpa存储库抽象中的中央接口是Repository。它需要领域实体类以及领域实体ID类型作为类型参数来进行管理。该接口主要用作标记接口,以捕获要使用的类型并帮助您发现扩展该接口的接口。CrudRepository、JpaRepository是更具体的数据操作抽象,一般我们在项目中使用的时候定义我们的领域...

阅读全文 »

Spring Cloud Gateway中的令牌桶限流浅析

Spring Cloud Gateway中的令牌桶限流浅析

前言 在一个分布式高并发的系统设计中,限流是一个不可忽视的功能点。如果不对系统进行有效的流量访问限制,在双十一和抢票这种流量洪峰的场景下,很容易就会把我们的系统打垮。而作为系统服务的卫兵的网关组件,作为系统服务的统一入口,更需要考虑流量的限制。Spring Cloud Gateway的实现中,就提供了限流的功能,下面主要分析下Spring Cloud Gateway中是如何实现限流功能了。 回...

阅读全文 »

Spring WebFlux的设计及工作原理剖析

Spring WebFlux的设计及工作原理剖析

前言 Spring 5发布有两年了,随Spring 5一起发布了一个和Spring WebMvc同级的Spring WebFlux。这是一个支持反应式编程模型的新框架体系。反应式模型区别于传统的MVC最大的不同是异步的、事件驱动的、非阻塞的,这使得应用程序的并发性能会大大提高,单位时间能够处理更多的请求。这里不讲WebFlux是怎么用的,有什么用,这类文章网上有太多了,而且都写的非常不错。下面主要看下WebFlux是...

阅读全文 »