最近使用新OpenAPI接口时发现自带的SwaggerUI界面不是很友好,一些开源的库,如Knife4j使用虽然很方便,不过对于比较大的schema支持不好,容易出现卡顿,目前做的比较好的是ApiFox,不过不能同步Markdown文件,而且私有化部署需要另外收费。 其实API文档服务比较简单,没有太多功能,因此抽空自己开发一个简单的API文档系统…
Sleuth集成Zipkin Spring Cloud中有 Spring Cloud Sleuth组件,Zipkin的客户端都是通过Sleuth集成在项目中,ZipkinServer启动在独立进程中。 什么是Zipkin Zipkin是 Twitter 的一个开源项目,基于 Google Dapper实现。可以使用它来收集各个服务器上请求链路的跟踪…
基础环境 已经安装好了nacos服务器 参考:https://nacos.io/zh-cn/ 已经有一个SpringBoot工程。 注册中心配置 添加依赖 注册中心配置依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s…
Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。 Nacos安装使用 Nacos是阿里开源的一款微服务注册中心,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 文档地址:https://nacos.io/zh-cn/do…
SpringBoot引入Caffeine缓存配置 一般在项目中使用Redis作为分布式缓存,但是还有有很多场景需要使用本地缓存,存储一些热点缓存数据等,目前Spring支持很多本地缓存框架,如ehcache,caffeine,jcache等,不过目前guava cache已经不在spring的默认支持中了。 Caffeine介绍 Caffeine是…
SpringBoot配置文件加密 公司为了增加配置文件安全性,配置文件中不能用明文的数据库连接密码等信息,因此需要对application.yml配置文件中的密码加密,搜了下发现springboot中比较常用的加密框架是jasypt 下载jasypt 下载地址: https://github.com/jasypt/jasypt/releases/t…
记录一下Spring同类异步调用 Spring默认情况下对于@Async和@Transactional等方法调用只在代理类的情况下有效,例如A类调用B类的加了注解的xxx方法可以,但是B类的其他方法调用B类的加了注解的xxx方法就不行,不能拦截到并开启事务或者异步。 配置方式 关键代码:@EnableAspectJAutoProxy(exposeP…
@Async开启Spring异步调用 在springboot环境可以通过@EnableAsync + @Async两个注解实现异步,必须使用@EnableAsync 开启,否则@Async不会生效。 配置方式 使用JavaConfig简单配置: @Configuration @EnableAsync public class DefaultAs…
基于Spring的RabbitTemplate实现消息事务 分布式系统中常见一种情况,就是数据库操作成功之后发送MQ消息。 分布式消息常见问题 数据库操作之后发送MQ消息通常会遇到一些问题,理论上消息和事务要同时成功才算一个完整的事务,那到底该把发送MQ放到数据库事务之外还是数据库事务之内? 下面分析下可能存在的问题: 消息放到数据库事务之内 事务…
Spring Boot开启声明式事务 在以前早期的Spring使用xml方式的时候,配置声明式事务通常用xml方式,使用Spring boot开始,xml基本算是淘汰了,因此怎么配置声明式事务呢?当然还是可以用xml或者JavaConfig方式。 开启Spring Boot事务(注解式) 要开启Spring Boot事务比较简单,在一个配置类中使用…