1、背景 上了 springboot 微服务框架后会有很多微服务,每次都到单个微服务自己的日志海洋里去找需要很大经理,日志跟踪就会成为一个麻烦。我们尝试来寻找一个简化方案 2...
1、背景 上了 springboot 微服务框架后会有很多微服务,每次都到单个微服务自己的日志海洋里去找需要很大经理,日志跟踪就会成为一个麻烦。我们尝试来寻找一个简化方案 2...
Spring中的父子容器 背景 在很长的一段时间里面,关于Spring父子容器这个问题我一直没太关注,但是上次同事碰见一个奇怪的bug于是我决定重新了解一下Spring中的父...
背景 ConcurrentHashMap是一个线程安全的Map,正因为它是线程安全的Map所以在使用时不注意也很可能带来问题。在业务上我们经常会遇到一种情况就是通过一个线程安...
用Retrofit代替openFeign简直就是开倒车 我不知道你怎么想的
再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配在微服务项目中,如果我们想实现服务间调用,一般会选择Feign。之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支...
Spring之@Import 前言 在平常开发中我们自己开发的组件通常我们可以通过Spring的XML配置文件,注解(例如@Component),配置类(例如@Configu...
Redis的持久化 Redis的持久化方式有两种:快照(RDB)文件和追加文件(AOF文件) 两种方式。 RDB 基本原理 RDB这种方式的工作原理就是Redis会创建一个子...
阅读该部分内容时,需要提前了解B+Tree树基本知识点,否则可能有些内容你并不能很好的体会到。对于下面几点内容如果不是很清楚,可以阅读我之前写的Mysql简叙[https:/...
RabbitMQ模型 上面的图是官网中关于一条消息发送的整个流程,消息会经历下面几个流程: 生产者将消息发送到Exchange Exchange根据Routing Key路由...
什么是索引 对于索引的定义你可能并不知道,但是我们日常生活中无时不刻都有用到。当你打电话给某人时,手机通讯录会按照名字的首字母分组排序,然后你就能根据用户名很快的找到对应的手...
需求背景 在我们写接口的时候可能会有这样的需求,例如对于BigDecimal类型的字段有时候需要显示到小数点后两位,有时候需要显示成百分比,有时候则取整。 例如上面的订单模型...
什么事务传播机制 首先这个传播机制跟数据库是没有关系的,不会因为你是Mysql或者oracle而有所区别。它是Spring框架中提供的一种事务增强机制,合理的利用能很好的解决...
什么是延时队列 延迟队列首先它是一个队列,作为队列它的第一个特征是有序的,而之所以它被称为延时队列它还有一个更重要的特性就是延时。对于普通队列而言,如果有消费者订阅队列消费,...
什么是死信队列 在RabbitMQ中一条消息出现下面三种情况就会成为死信: 消息被nack或者reject且requeue参数为false 消息因TTL过期 队列超出长度限制...
背景 项目中需要记录用户的请求参数便于后面查找问题,对于这种需求一般可以通过Spring中的拦截器或者是使Servlet中的过滤器来实现。这里我选择使用过滤器来实现,就是添加...
背景 新创建的SpringBoot项目需要用到ElasticSearch,但是因为ES版本为7.0与SpringBoot中的Spring Data Elasticsearch...
ThreadLocal 在我之前的文章中介绍过什么是ThreadLocal[https://www.jianshu.com/p/611c2e31fa58?fileGuid=Q...
起因 在看SpringMVC官方文档中,有这么一个类WebApplicationInitializer,通过这个类可以代替web.xml文件直接配置,而且文档中说这个类由Se...
为什么要使用日志 刚开始接触java时都使用过System.out来调试,通过它我们能打印出一些关注的信息到控制台便于我们调试。这种方式只限于我们平常开发时简单测试,但是生产...
常见的scope Spring及其其他组件提供了多种Scope,但是我们在使用Spring和他们的组件时用的最多的Scope只有几个。 singleton:Spring默认的...
起因 在学习SpringCloud的过程中,我创建了一个服务提供者user-service,我设置的spring.application.name=user_service。...