首页
学习
活动
专区
工具
TVP
发布

分布式与微服务

专栏成员
21
文章
14621
阅读量
13
订阅数
试试使用Spring Event组合@Async注解,轻松实现代码的解耦和异步
在我们写代码的时候,通常需要考虑到代码的耦合性,因为低耦合的代码有利于我们后续的维护和迭代,而Spring Event可以说是一个降低代码耦合度的神器,配合@Async注解更是能够轻松实现异步。今天我们就一起来了解一下Spring Event。
Java进阶之路
2022-11-18
1K0
TCP的滑动窗口是怎么回事,不来了解一下吗?
我们知道tcp协议是可靠传输的协议,而tcp的可靠传输与滑动窗口协议密不可分,那么今天罗师傅就和大家一起探讨一下tcp的滑动窗口,tcp的滑动窗口到底是怎么回事?
Java进阶之路
2022-11-18
4690
后端接口性能差,该从哪些方面进行优化?
作为一个后端开发工程师,我们大部分时间都是在开发业务接口,作为一个资深开发,我们不仅仅是要保证能用就行,更重要的是要保证接口的性能。那么如果接口慢,我们应该从哪些方面对接口进行优化呢?
Java进阶之路
2022-11-18
4580
TCP是怎么实现可靠传输的
我们都知道tcp的传输是可靠的,那么你知道tcp是如何实现数据的可靠传输的吗?今天就和大家一起探讨一下tcp是如何实现数据可靠传输的。
Java进阶之路
2022-11-18
6650
缓存雪崩,缓存穿透,缓存击穿是什么?我们要怎么解决这些问题?
在开发过程中,为了减轻数据库的压力,我们经常会使用到缓存,所以相信大家对缓存雪崩,缓存穿透,缓存击穿这三个名词并不陌生。今天就和大家一起分享一下,到底什么是缓存雪崩,缓存穿透,缓存击穿,我们要怎么做才能解决这些问题。
Java进阶之路
2022-11-18
4780
ReentrantReadWriteLock原理分析(二)--writeLock
上一篇文章给和大家一起分析了ReentrantReadWriteLock的readLock的原理,相信大家对readLock的实现已经有所了解,今天我们继续分析writeLock。
Java进阶之路
2022-11-18
1820
ReentrantReadWriteLock原理分析(一)--readLock
很多时候,我们为了保证线程安全,会对一段代码加锁,但是加锁就意味着程序效率的下降,所以,我们经常会对锁进行一些优化,例如严格控制加锁的粒度,利用cas来代替加锁等。而今天我们介绍的读写锁,也是对锁的一种优化方案的实现。试想一下,如果我们的线程大部分时候都是读操作,那么读操作与读操作直接有必要互斥吗?答案是没有必要的,只有读写操作,写写操作才需要通过互斥来保证线程安全。今天我们通过ReentrantReadWriteLock来看看读写锁是如何实现的。
Java进阶之路
2022-11-18
1720
CopyOnWriteArrayList是如何保证线程安全的?
在我们需要保证线程安全的时候,如果使用到Map,那么我们可以使用线程安全的ConcurrentHashMap,ConcurrentHashMap不仅可以保证线程安全,而且效率也非常不错,那有没有线程安全的List呢?答案是有,那就是CopyOnWriteArrayList。今天我们就一起来了解一下CopyOnWriteArrayList,看它是如何巧妙的保证线程安全的吧。
Java进阶之路
2022-11-18
5240
在SpringBoot项目中,我可以说出7种注册bean的方式
Spring和SpringBoot是当前最火的Java开发框架,很多时候我们都会将对象注册到Spring的容器中,将对象交给Spring来管理,那么今天我们就来盘点一下将Bean注册到Spring容器的7种方式。
Java进阶之路
2022-11-18
1.4K0
@Import注解的使用和原理
@Import注解是Spring中比较核心的注解,它的功能很强大,特别是在SpringBoot中,@Import注解使用的地方非常多,无论是@EnableXX类型的注解,还是自动装配都和@Import注解脱不开关系。今天就和大家聊聊它的作用以及原理。
Java进阶之路
2022-08-03
8050
一篇文章彻底弄懂dubbo的SPI机制的原理
在dubbo中几乎所有的功能组件都是基于SPI来实现的,dubbo良好的扩展性也与SPI加载机制密不可分,所以要想更进一步理解使用dubbo或者阅读dubbo的源码,SPI是一定要懂的。本文主要通过源码分析的方式来理解dubbo SPI的实现原理。
Java进阶之路
2022-08-03
5070
线程的复用---线程池原理解析
本文基于java11对线程池的参数,执行任务的流程以及原理进行解析,并且对线程池关键性源码进行了分析。
Java进阶之路
2022-08-03
3650
ConcurrentHashMap源码分析
本文基于jdk1.8对concurrentHashMap的源码进行分析,以put()方法为入口对concurrentHashMap的扩容机制,size计算方式等代码进行分析
Java进阶之路
2022-08-03
3870
Java并发编程之Future与FutureTask
我们都知道实现异步可以通过Runnable接口来实现,但是Runnable接口是无法获取任务的返回值的,如果需要获取到任务的返回值,那么就需要利用Future机制了。
Java进阶之路
2022-08-03
3420
SpringBoot是如何实现自动装配的
SpringBoot作为当前最火的java开发框架,它的自动装配帮助我们省略了许多繁琐配置,能够帮助我们快速构建一个项目,那么今天我们就一起分析下SpringBoot实现自动装配的原理。
Java进阶之路
2022-08-03
6860
ThreadLocal的plus版--InheritableThreadLocal
我们知道ThreadLocal可以实现线程级别下的数据隔离,但是如果需要将当前线程的值传递给子线程,是需要自己去写逻辑实现的,会比较复杂。而InheritableThreadLocal帮助我们解决了这个问题。本篇文章就和大家一起聊聊InheritableThreadLocal。
Java进阶之路
2022-08-03
2360
用了这么久ThreadLocal,它的原理你还不懂吗
我们很多时候为了实现数据在线程级别下的隔离,会使用到ThreadLocal,那么TheadLocal是如何实现数据隔离的呢?今天就和大家一起分析一下ThreadLocal的实现原理。
Java进阶之路
2022-08-03
2610
Raft协议是怎么实现数据一致性的
Raft协议是一种强一致性、去中心化、高可用的分布式协议,它是用来解决分布式一致性问题的,相对于大名鼎鼎的Paxos协议,Raft协议更容易理解,并且在性能、可靠性、可用性方面是不输于Paxos协议的。许多中间件都是利用Raft协议来保证分布式一致性的,例如Redis的sentinel,CP模式的Nacos的leader选举都是通过Raft协议来实现的。今天就和大家一起探讨一下Raft协议的实现原理。
Java进阶之路
2022-08-03
2K0
Redisson重入锁是通过setnx命令实现的?别再云了
问过很多面试者,redisson的可重复锁是怎么实现的,很多面试者都会不假思索的回答是通过redis的setnx命令来实现的,那么真的是这样吗?今天我们就一起来看下redisson分布式可重入锁到底是怎么实现的。
Java进阶之路
2022-08-03
1K0
并发高的情况下,试试用ThreadLocalRandom来生成随机数
如果我们想要生成一个随机数,通常会使用Random类。但是在并发情况下Random生成随机数的性能并不是很理想,今天给大家介绍一下JUC包中的用于生成随机数的类--ThreadLocalRandom.(本文基于JDK1.8)
Java进阶之路
2022-08-03
7820
点击加载更多
社区活动
AI代码助手快速上手训练营
鹅厂大牛带你玩转AI智能结对编程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档