SpringBoot + MDC 实现全链路调用日志跟踪

SpringBoot + MDC 实现全链路调用日志跟踪

MDC 介绍

简介

MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,只需要从 MDC 中获取所需的信息即可。MDC 的内容则由程序在适当的时候保存进去。对于一个 Web 应用来说,通常是在请求被处理的最开始保存这些数据。


xlc520JavaJavaSpringBoot大约 6 分钟
SpringBoot 整合 Socket 实战案例

SpringBoot 整合 Socket 实战案例

功能场景点:

  1. 群发,所有人都能收到
  2. 局部群发,部分人群都能收到
  3. 单点推送, 指定某个人的页面

惯例,先看看本次实战示例项目结构:

SpringBoot整合Socket
SpringBoot整合Socket

xlc520JavaJavaSpringBoot大约 7 分钟
SpringBoot利用ThreadPoolTaskExecutor批量插入

SpringBoot利用ThreadPoolTaskExecutor批量插入

前言

开发目的:

提高百万级数据插入效率。

采取方案:

利用ThreadPoolTaskExecutor多线程批量插入。

采用技术:

  • springboot2.1.1
  • mybatisPlus3.0.6
  • swagger2.5.0
  • Lombok1.18.4
  • postgresql
  • ThreadPoolTaskExecutor

xlc520JavaJavaSpringBoot大约 2 分钟
SpringBoot整合Mybatis-plus及用法2

SpringBoot整合Mybatis-plus及用法2

创建项目

普通的spring-boot项目,在 start.spring.io或者使用idea创建都行,相关依赖如下

我这版本用的springboot版本是 2.1.4

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<scope>runtime</scope>
	</dependency>
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<optional>true</optional>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-boot-starter</artifactId>
		<version>3.1.0</version>
	</dependency>
</dependencies>
<build>
	<resources>
		<resource>
			<directory>src/main/java</directory>
			<includes>
				<include>**/*.xml</include>
			</includes>
			<filtering>true</filtering>
		</resource>
		<resource>
			<directory>src/main/resources</directory>
		</resource>
	</resources>
</build>

xlc520JavaJavaSpringBootMybatis-plus大约 9 分钟
SpringBoot整合Mybatis-plus及用法

SpringBoot整合Mybatis-plus及用法

一、mybatis-plus简介:

Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。并且3.X系列支持lambda语法,让我在写条件构造的时候少了很多的"魔法值",从代码结构上更简洁了.


xlc520JavaJavaSpringBootMybatis-plus大约 9 分钟