KL个人博客 首页>>spring

给gRPC-spring-boot-starter一个pr的说明

给gRPC-spring-boot-starter一个pr的说明

前言 为了更好的说明给gRPC-spring-boot-starter项目提交bug修复的pr的原因,解答作者的问题。以博文的形式记录了整个过程的上下文,目前pr未合并还在沟通处理中,希望此博文可以更清楚描述问题 pr地址: https://github.com/yidongnan/grpc-spring-boot-starter/pull/454 gRPC-spring-boot-starter是什么? 这是一个spring-boot-starter项目,用来在spring boot框架下,快速便捷的使用grpc技术,开箱即用。它提供如下等功...

阅读全文 »

集成apollo动态日志,“消灭”logback-spring.xml

集成apollo动态日志,“消灭”logback-spring.xml

前言 动态调整线上日志级别是一个非常常见的场景,借助apollo这种配置中心组件非常容易实现。作为apollo的官方技术支持,博主经常在技术群看到有使用者询问apollo是否可以托管logback的配置文件,毕竟有了配置中心后,消灭所有的本地配置全部交给apollo管理是我们的最终目标。可是,apollo不具备直接托管logback-spring.xml配置文件能力,但是,我们可以基于spring和logback的装载机制,完全...

阅读全文 »

spring boot应用优化,6s内启动,内存减半

spring boot应用优化,6s内启动,内存减半

前言 taptap-developer是一个spring boot框架驱动的纯Grpc服务,所以,只用了四步,移除了web和spring cloud相关的模块后,启动速度就稳稳的保持在了6s内。除了启动速度提升外,在服务待机状态下,内存锐减了50%左右,从500M左右的内存占用,缩减到了250M不到。 分析日志 日志是一个应用的门面,在未深入了解一个应用的架构前,通过启动的日志输出基本可以分析出这个应用的大概的技术构成...

阅读全文 »

JPA项目多数据源模式整合sharding-jdbc实现数据脱敏

JPA项目多数据源模式整合sharding-jdbc实现数据脱敏

前言 前一篇博文,已经完整的介绍了数据库脱敏的场景以及方案,来自京东数科的Encrypt-JDBC开源项目通过对数据源中间代理的方式透明化的实现了这个功能,但是,功能虽然实现了,sql兼容的小问题还是很多,比如目前还不支持子查询,数据库定义的关键字不允许使用,等等问题,反观我们需要加解密的字段,其实占比非常小,即使遇到了和组件不兼容的地方也可以稍加改动解决掉...

阅读全文 »

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...

阅读全文 »

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

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

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

阅读全文 »