- 博客(6)
- 收藏
- 关注
原创 SpringBoot+RabbitMQ
1.1 什么是MQMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿
2020-06-04 14:26:42 443
原创 java并发编程(3)
1 interrupt 方法详解(1)打断 sleep,wait,join 的线程这几个方法都会让线程进入阻塞状态打断 阻塞 的线程, 会清空打断状态,以 sleep 为例private static void test1() throws InterruptedException { Thread t1 = new Thread(()->{ sleep(1); }, "t1"); t1.start(); sleep(0.5); t1.interrupt(); log.debug
2020-05-31 15:17:20 166
原创 Java并发编程(2)
1.线程运行的原理我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟机就会为其分配一块栈内存。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法2 线程之间的上下文切换因为以下一些原因导致 cpu 不再执行当前的线程,转而执行另一个线程的代码1.线程的 cpu 时间片用完2.垃圾回收3.有更高优先级的线程需要运行4.线程自己调用了 sleep、yield、wa
2020-05-30 15:29:27 322
原创 Java并发编程(1)
1.进程和线程的基本概念进程:进程可以理解为一个程序的实例,就可以理解为一个应用或程序,当程序被运行时,会把磁盘中的程序代码加载到内存,同时开启一个进行;线程:可以理解为进程中的一条条指令流,线程是进程的子集,将一条条的指令按照一定的顺序交给CPU,线程是Java中最小的调度单位。2.并行与并发的概念并发:单核 cpu 下,线程实际还是 串行执行 的。操作系统通过任务调度器将CPU时间片分给不同的程序使用,由于分片的时间非常短,给人的感官上好像是在同时进行;--》微观串行,宏观并行;
2020-05-30 14:47:44 126
原创 SpringBoot集成ShedLock实现分布式定时锁
shedLock介绍:当我们的服务是集群部署时,我们代码中的定时任务在每个节点都有,每个节点都去跑定时任务很显然不大合适,这就是我们要解决的问题。因为在项目中有用到,所以记录一下SpringBoot怎么集成ShedLock,还有shedLock是如何实现分布式定时的。使用方法:第一步:引入依赖 <!-- shedlock 分布式定时任务锁 --> <dependency> <groupId>net.javacru
2020-05-19 14:26:52 1072
原创 SpringBoot集成SpringRetry实现异常重试
使用场景:spring-retry主要用于网络请求,当某一次网络请求失败时,能够重新进行尝试请求,解决某一时间的网络问题导致整个请求失败。使用方法:第一步:在pom.xml中添加坐标依赖 <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency&
2020-05-19 14:06:52 783 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人