- 博客(10)
- 收藏
- 关注
原创 CAS的小问题
//CAS问题 private AtomicInteger value=new AtomicInteger(0); public final int getAndIncrement() { int current; int next; do { current=this.value.get(); next=current>=Integer.MAX_VALUE?0:current+1; } while (!this.value.compareAndSet(current,next));//期望值,修改
2021-05-16 20:45:18
148
原创 JVM
JVM 基本样子 执行流程 双亲委派机制 类加载器收到加载请求不会自己去执行而是从下面往上面把请求委派给父类,直到BOOT启动类加载器,如果启动类加载器加载不了,就会往下尝试执行加载。 APP–>EXC–>BOOT 都是加载器 向上查找,向下执行 启动类加载器(Bootstrap ClassLoader):前面已经大致介绍过了,这个类加载器负责将存放在 <JRE_HOME>\lib 目录中的,或者被 -Xbootclasspath 参数所指定的路径中的,并且是虚拟机识别的(仅按
2021-04-14 16:43:23
130
原创 多线程volitile和synchronized lock
synchornized 和lock的区别 1.synchronized是java自带的关键字,lock是接口 2.synchronized自动上锁解锁,lock是手动上锁解锁。 3.synchronized发生异常就会解锁不会死锁,lock忘记解锁就会死锁 4.lock的可以知道是否获得了锁,提高了多线程读的效率 5.Lock可以让等待锁的线程中断不会一直等待下去。而synchronized会一直等待 如果锁具备可重入性,则称作为可重入锁。像synchronized和ReentrantLoc...
2021-04-10 19:43:22
323
原创 Mysql小记innodb和myisam
newCacheThreadPool没有核心线程都是非核心线程且非核心线程非常多所以在队列里的任务执行的非常快 newFixedThreadPool只有核心线程所以执行比较慢 newsingethreadExector 只有一个核心线程所以非常慢 newCache不会oom cpu会爆满 因为非核心线程(worker)多能执行 其他两个会oom内存溢出 因为队列可能爆满 处理不了那么多 这里有一个 提交优先级和执行优先级 提交优先级是1.核心 2.队列3.非核心 执行优先级是1.核心 2.非核心3.队列
2021-04-09 16:24:51
168
原创 MQ与SpringBoot
package com.rabbitmqspringboot.demo; import com.DemoApplication; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired;
2021-04-01 15:20:01
176
原创 RabbitMQ
1.最简单的HelloWorld直连(点对点 登录加积分功能等等) provider-(通道channel)>消息中间件-(channel)>customer 首先就factory工厂 然后工厂里拿连接connection 然后connection里拿通道并且设置属性 //1.先与服务器连接 创建连接工厂(提供者) ConnectionFactory connectionFactory = new ConnectionFactory(); //设置rabbitmq的主机 connectio.
2021-04-01 12:49:22
153
原创 redis缓存穿透和雪崩
redis缓存穿透和雪崩 客户端读的请求先去缓存中查,没有就去数据库查 如果是个高并发,或者秒杀缓存中没有多个几千几万个查询就去数据库了,容易让数据库宕机,崩了,数据库压力巨大 缓存穿透是指缓存中没有的大面积去数据库中查的事件 布隆过滤器是一种数据结构 对所有的可能查询参数以hash存储,在控制层校验,不符合就丢弃,避免了对底层存储系统的压力 两个问题 1.更多的空间去存储更多的键,当中可能有很多的空值键 2.空值过期时间,缓存层和存储层的数据会有一段时间的不一样,这对需要保持一致性的业务有影响。 缓存击穿
2021-03-30 12:20:45
107
原创 redis集群主从复制
redis小记 redis的集群 如果是单台服务器上需要修改复制多个redis.conf文件,vim进入修改模式,修改端口号,log文件的名称,dump.rdb文件,pid名字,修改后打开不同的端口启动集群 ps -rf|grep redis 查看进程 主从复制,默认每开一台都是master主机,查看的话看info replication里面有详细的配置,配置从机的话,是到从机端口进行slaveof host port 进行从机配置,真实的是从配置文件开始修改,这样是永久的。 主机写,从机可以读但是不能写,
2021-03-30 12:19:49
135
原创 redis哨兵机制
redis哨兵(sentinal)模式(自动选master) 主机断开后的自动谋朝篡位,不需要手动配置了此时哨兵sentinal就出现了,后台监测主机是否出问题了,如果主机故障,则根据投票自动从从库转换为主库 哨兵监测主与从,一个哨兵称为单机哨兵 一般多个哨兵互相监控,同时监控主从 主观下线:就是一个哨兵任务主不能用了 客观下线:其他哨兵也监测不可用了,哨兵间就会发布投票,结果由一个哨兵发起,进行failover故障转移操作。切换成功后,通过发布订阅模式,让各个吧自己监控的服务器切换为主机。 配置哨兵sen
2021-03-30 12:18:55
189
原创 Spring小记
关于Spring 1.Spring是一种轻量级(依赖小,需要就打入就行)开发框架,是很多模块的集合。分别核心容器,数据访问/集成,Web,AOP,工具,消息,和测试。 spring官网的6大特征:1.核心技术:依赖注入DI,AOP(面向切面编程)事件,资源,数据绑定等等。 2.测试:模拟对象,SpringMVC测试 3.数据访问:JDBC,DAO,ORM 4.web支持:SpringMVC,spring WebFlux Web框架 5.集成:远程处理,jms,电子邮件,调度,缓存等等 6.语言:Kotlin
2021-03-30 11:24:53
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅