51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Java笔记

主线程的用户信息,到子线程怎么丢了

主线程的用户信息,到子线程怎么丢了

厉飞雨 阅读(34) 评论(0) 赞(5)

[#](#前言) 前言 {#前言} ----------------- 前几天有人问了我这样一个问题:在使用多线程的时候,发现有一些数据会在进入到子线程之后丢失,比如用户信息,又比如记录日志的TraceId等等。这个子线程数据丢失的问题我早前也遇到过,刚好来讲讲解决方案。 [#](#前期准备) 前期准备 {#前期准备} ----------------------- 首先...

SpringBoot请求日志,如何优雅地打印

SpringBoot请求日志,如何优雅地打印

厉飞雨 阅读(32) 评论(0) 赞(3)

[#](#前言) 前言 {#前言} ----------------- 上一篇文章介绍了如何使用MyBatis的Plugin,来实现SQL的日志打印,这篇文章介绍一下如何将SpringBoot的请求日志,优雅地打印到日志中。 实现效果是这样的,只需要在需要打印的接口上加上一个注解,或者增加一项配置项,一个很详细的请求出入参等信息就被打印出来了。 ![](http://sta...

粘包和半包有了解过吗?netty是如何解决这个问题的

粘包和半包有了解过吗?netty是如何解决这个问题的

厉飞雨 阅读(41) 评论(0) 赞(4)

[#](#一-什么是粘包、半包) (一)什么是粘包、半包 {#一-什么是粘包、半包} ------------------------------------------ 在实际的网络开发中或者在面试中,最开始使用TCP协议时经常会碰上粘包和半包的情况,因此我们有必要了解一下什么是粘包,什么是半包,以及如何去解决。 **粘包**:故名思意就是客户端和服务端之间发送的数据包粘...

网络开发的最强大框架:Netty快速入门

网络开发的最强大框架:Netty快速入门

厉飞雨 阅读(77) 评论(0) 赞(3)

[#](#一-什么是netty) (一)什么是netty {#一-什么是netty} ------------------------------------------ Netty是一个**异步的,基于事件驱动的网络应用框架** ,用于快速开发可维护、高性能的**网络服务器和客户端** 。Netty的应用十分广泛,可以说主流的框架中,如果有网络方面的需求,一般用的都是net...

Zookeeper实现分布式锁的原理是什么?

Zookeeper实现分布式锁的原理是什么?

厉飞雨 阅读(39) 评论(0) 赞(4)

[#](#一-引言) (一)引言 {#一-引言} ------------------------ 在单体环境中,遇到临界资源的时候我们会使用Synchronized或者RetreenLock在调用临界资源前上锁。但是在分布式的环境下,锁住单体资源就不起作用了,这个时候就需要用到分布式锁。分布式锁的原理就是借用外部的一个系统来充当锁的作用,比如Mysql、Redis、Zook...

SpringCloud与微服务入门,使用idea搭建第一个微服务项目

SpringCloud与微服务入门,使用idea搭建第一个微服务项目

厉飞雨 阅读(36) 评论(0) 赞(5)

[#](#一-什么是微服务) (一)什么是微服务? {#一-什么是微服务} ------------------------------------- 在了解什么是SpringCloud之前,我们有必要去了解一下什么是微服务。在传统的项目中,我们都是把所有的代码都放在一个单体应用中,这种方式配置方便,可以很好的运行部署,但是随着项目越来越大,这个单体应用就会越来越臃肿,再加上...

Eureka基础与进阶实战

Eureka基础与进阶实战

厉飞雨 阅读(24) 评论(0) 赞(5)

[#](#一-什么是服务注册中心) (一)什么是服务注册中心 {#一-什么是服务注册中心} --------------------------------------------- 服务注册中心是微服务架构中非常重要的一个组件,在微服务架构中起到了协调者的作用,一般包含下面几个功能: 服务发现:保存服务提供者和服务调用者的信息;服务调用者订阅服务提供者的信息 服务配置:服...

ribbon的服务调用和负载均衡

ribbon的服务调用和负载均衡

厉飞雨 阅读(26) 评论(0) 赞(4)

[#](#一-ribbon概述) (一)ribbon概述 {#一-ribbon概述} ------------------------------------------ Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求...

Feign的入门和高级使用

Feign的入门和高级使用

厉飞雨 阅读(28) 评论(0) 赞(3)

[#](#一-feign概述) (一)Feign概述 {#一-feign概述} --------------------------------------- Feign是Netflix开发的声明式,模板化的Http客户端,Feign可以帮助我们更加便捷的调用HTTP API。SpringCLoud对Feign进行了增强,使得Feign支持SpringMVC注解,并整合Rib...

Hystrix的入门和高级使用

Hystrix的入门和高级使用

厉飞雨 阅读(38) 评论(0) 赞(4)

[#](#一-hystrix的介绍) (一)Hystrix的介绍 {#一-hystrix的介绍} ------------------------------------------------ 微服务的调用有时候会存在连环调用,即微服务A调用微服务B,微服务B调用微服务C。此时当微服务C不可用的时候,所有的请求都会阻塞到微服务B,可能会导致微服务B的资源耗尽,进而使得微服务...