- 博客(13)
- 收藏
- 关注
原创 AQS源码
AQS是AbstractQueueSynchronization,抽象的队列同步器,它是实现同步器的基础组件,如常用的ReentrantLock、Semaphore、CountDownLatch等。如果共享资源被占用,就需要一定的阻塞等待唤醒机制来保证锁分配。这个机制主要用的是CLH队列的变体实现的,将暂时获取不到锁的线程加入到队列中,这个队列就是AQS的抽象表现。它将请求共享资源的线程封装成队列的结点(Node),通过CAS自旋以及的方式,维护state变量的状态,使并发达到同步的控制效果。
2024-09-27 11:15:36 873
原创 关于ThreadLocal内存泄漏
ThreadLocal内存泄漏问题主要是因为ThreadLocal有个ThreadLocalMap他有个Entry内部类该类继承了WeakRefenrence类 他的构造方法把ThreadLocal做为弱引用当而value直接赋值 在垃圾回收时弱引用会直接被回收而他的值是强引用不会被回收 一直不回收导致内存泄漏。ThreadLocal的get方法 就是获取当前的线程然后通过getMap方法获取到ThreadLocalMap然后获取到数据Entry。
2024-09-15 20:16:51 200
原创 Java多模块项目打可运行jar包
在parent节点下面加上relativePath,作用是指明依赖哪个父模块pom文件(如果是依赖直接父级就是…(springboot的maven插件,用这个插件打包的Jar包可以直接运行,但是不可依赖!点击package打包,就会生成target文件夹,其中放的jar包就是你需要运行的。: 加上springBoot的maven打包插件,并且指定运行的主入口类。其中他的service-oa是web的运行主模块。直接运行你的启动类所在模块就可以启动。配置父模块的子模块有那些。配置父模块的打包方式。
2023-12-29 09:18:51 943 1
原创 Springboot整合rabbitmq
最后就是让我们的消费者来监听你想监听的队列 当前是你延时多长时间后他就会被消费者监听到然后进行判断当前传过来的订单id的状态是否被接单,如果被接单就什么不干,如果没有就删除订单。导入依赖版本和你导入的<spring-boot-stater-parent>的版本一致,也可以自己改版本利用<version></version>第二种利用yum来安装(这是黑马的借用一下,大家可以从网上找有很多的安装教程)找到你想运用的类 我这里是准备在你添加订单时在多长时间被接单就自动取消。其中第二个是延时队列的插件。
2023-12-08 10:52:53 77
原创 npm ERR! code EPERMnpm ERR! syscall mkdirnpm ERR! path D:\node.js\node_cache\_cacachenpm ERR! err
据提示去找到以前安装的进行删除即可解决问题。该问题在安装脚手架的时候出现,应根。
2023-10-09 22:32:54 251 1
原创 springboot全局自定义异常
Data/*** 通过状态码和错误消息创建异常对象*//*** 接收枚举类型对象*/@Override'}';@GetterSUCCESS(200,"成功"),FAIL(201, "失败"),LOGIN_MOBLE_ERROR(204,"认证失败"),PERMISSION(205,"认证失败");借用的硅谷的自定义异常4.如何使用在你想用的地方添加 throw new GuiguException(201,"密码错误");
2023-10-02 20:28:23 100 1
原创 redis分片集群(简介)
redis的主从可以解决:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
2023-05-08 19:18:15 88
原创 redis哨兵机制
1.首先会判断slave节点与master-节点断开时间长短,如果超过指定值 (down-after-.milliseconds*10)则会排除该slave节点。3.如果slave-prority一样,则判断slave节点的offset值,越大说明数据越新,优先级越高。2.然后判断slave节点的slave-priority值,越小优先级越高,如果是O则永不参与选举。1.首先将被选中的slave节点变成主节点 slave no one。
2023-05-07 21:43:38 183 1
原创 redis搭建集群
单节点Redist的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。master如何判断slave是不是第一次来同步数据?这里会用到两个很重要的概念::简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slave则会继承master节点的replidoffset:偏移量,随着记录在repl_baklog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。
2023-05-07 20:59:56 62 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人