- 博客(55)
- 资源 (1)
- 收藏
- 关注

原创 Mycat搭建分库分表
BROADCAST代表广播表,意味着所有的数据源都会创建这张表。_0 并且存放的是id偶数的数据。_1 并且存放的id是基数的数据。,自动创建cluster。,自动创建cluster。在mycat进行查询。
2024-09-18 23:17:02
2258

原创 Mysql 搭建主从复制
mysql-master:/etc/my.cnf.d/mysql-server.cnf ./mysql-server.cnf 将容器中的文件copy到本地路径。./mysql-server.cnf mysql-master:/etc/my.cnf.d/mysql-server.cnf 再将文件copy回容器。`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键' ,SHOW REPLICA STATUS\G 查看从服务器状态。
2024-09-12 22:47:36
2282

原创 Mysql Innodb存储引擎原理—链接如下
ProcessOn是一个在线协作绘图平台,为用户提供强大、易用的作图工具!支持在线创作流程图、思维导图、组织结构图、网络拓扑图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。同时依托于互联网实现了人与人之间的实时协作和共享。Mysql Innodb存储引擎| ProcessOn免费在线作图,在线流程图,在线思维导图。
2024-09-09 22:55:03
797

原创 Spring 如何处理循环依赖的问题?
Spring是不知道当前bean有没有循环依赖的,它会义无反顾的往。如果singletonfactories没有找到bean的工厂就。singletonfactories中找到提前暴露的工厂的到了A。singletonfactories中存放当前bean的工厂。如果没有,则判断Bean是否在创建中,如果不在创建中,此时又回到了A注入B的地方,完成了对B的注入,singletonfactories中删除。arlySingletonObjects中。此时就到了B这个bean属性注入的步骤了。
2024-09-08 00:12:24
1271
原创 Redis 分布式锁
RedLock算法对应的场景 主节点挂掉后,lockkey还未同步到从节点,导致从节点上没有lockkey(发生概率很小,面试官喜欢在AP模型里解决CP模型的问题)解锁方式:通过lua脚本实现原子操作,先进行uniqueId对比操作,如果相同,则执行del解锁操作。不可靠,如果redis主服务器宕机,会影响到锁的使用(即少数服从多数会受影响。续期:当分布式锁到达了超时时间,但是业务并没有完成,则将对锁进行续期。如果没有uniqueId S1在第7s的时候解锁,或解了S2的锁。
2024-10-20 23:12:53
714
原创 阻塞队列的原理?(如何设计一个阻塞队列?)
因为LinkedBlockingQueue有放,取两把锁,因此它的吞吐量要比ArrayBlockingQueue高。
2024-10-18 20:46:09
257
原创 kafka分区和副本的关系?
一个partition分区只能被一个消费组中的一个消费者消费。+Topic 确定一个当前消费到哪个offset。副本会尽可能放到不同的节点上。每个分区的leader。
2024-09-26 23:39:33
852
原创 Java内存模型?
java内存模型 原子性 AtomicInteger , Synchronized ,Lcok ,CAS 可见性 Volatile 有序性 通过加锁解锁来保证指令的有序性 通过指令重排,在不影响最终结果的前提下,会提高效率 Happen-brefore规则 一个线程内语义的串行 volatile,先发生于读,才能保证volatile的可见性 先加锁,后解锁的顺序不能变 线程start()方法要先于每一个动作的 线程所有的操作先于线程的终结thr
2024-09-25 23:41:56
189
原创 Java并发工具类
主线程创建CyclicBarrier并定义计数(比如2),子线程1执行一次cyclicBarrier.await() 进入阻塞等待,子线程2执行一次cyclicBarrier.await() 达到2次,则该两个子线程可继续执行下面逻辑,并且可分别继续执行cyclicBarrier.await(),达到两次后,又可分别解除阻塞。,每组三个,这三组线程内部先后执行肯定是无序的,但是组与组之间,其实也是无序的,不一定先创建的线程,会优先获得准入许可。,并且默认获得的是非公平锁。Semaphore信号量。
2024-09-25 23:40:51
374
原创 Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?
Thread A1 ——> ThreadLocalMap(其实是Entry数组)Thread A2 ——> ThreadLocalMap(其实是Entry数组)Thread A3 ——> ThreadLocalMap(其实是Entry数组)Thread A4 ——> ThreadLocalMap(其实是Entry数组)Thread A ——> ThreadLocalMap(其实是Entry数组),而是一个Entry数组,里面存放了一个一个的Entry。而Entry中存放的就是key和value。
2024-09-24 23:30:43
1113
原创 线程池工作原理?
allowCoreThreadTimeOut设为true,默认情况下,线程池不会预先创建线程,但可以配置。也可以继续销毁空闲的核心线程。
2024-09-24 14:40:02
524
1
原创 双亲委派机制&SPI
这里forName进行加载类,forName方法的getClassLoader是获取caller对应的ClassLoader,caller就是指当前调用的forName方法的那个类,即ReflectionTest这个类,因为这个类是自己写的,所以在CLASSPATH路径下,获取到的加载器应该是应用类加载器(App ClassLoader),解析去会尝试用应用类加载器加载Persion类。尽管SPI本身是由启动类加载器加载,但是它间接的通过应用类加载器加载第三方驱动类,绕过了严格的双亲委派机制。
2024-09-23 14:57:54
1416
原创 synchronized和ReentrantLock区别?
不同点 synchronized synchronized是Java内置的关键字,由JVM控制的 用在方法上或代码块上 是非公平锁 不需要手动解锁 不支持超时 不可以中断 不支持多条件Condition 以前性能不如ReentrantLock,现在性能差不多 ReentrantLock JUC类库提供 使用起来比synchronized更灵活 支持公平锁和非公平锁 需要手动解锁 可以设置超时时间,避免死锁 可以中断
2024-09-20 22:12:42
248
原创 ReentrantLock实现原理
如果当前线程不需要排队,那么就可以尝试CAS修改state的状态,如果CAS修改成功,就说明抢锁成功,就把。如果当前线程已经排在队列头部,就尝试获得锁。获得成功程序到这就结束啦~setExclusiveOwnerThread设置成当前线程。=0,那么说明当前没有线程占着锁。,也就是阻塞线程,直到获得锁。,情况一:如果state。程序到这里就结束啦~
2024-09-20 11:15:35
394
原创 synchronized是怎么实现的?
因为jvm内部代码也用到了很多synchronized,如果启动直接开启偏向锁。,如果产生竞争,就会导致锁的升级到轻量级锁,锁的升级会带来额外的性能的消耗。4s才能获得匿名偏向锁(markword中未指定线程id)偏向锁解锁完成后,对象头中的线程id不会清。,如果当前线程在进行加锁就不用赋值线程id。注意这里不会回到偏向锁(一次性的)轻量级锁解锁后就会变成无锁对象(无锁对象再加锁,就会变成轻量级锁。,另外一个线程对同一个资源。4s以内只能获得无锁。,就会升级成轻量级锁。
2024-09-19 22:10:07
364
原创 HashMap高频面试知识点
但是多线程环境下可能导致环路从而引发死循环。,所以新数组高位按位与操作不受影响(注意:与操作有。(Segment继承ReentrantLock。只有在更新链表和红黑树的节点时才会用到sy。,就不会扩容,导致对并发度控制过于死板(不同的key可能会产生相同的hash值。然后再次通过key的hash得到Seg。ment里HashEntry的数组下标。),那就说明在原位置,不需要迁移。,从而导致hash冲突,jdk。gment数组一旦初始化了之后。,接下去的步骤同Hash。1.8之后采用尾插法。
2024-09-19 16:12:32
1228
原创 Mycat搭建读写分离
transcationType: xa表示跨库的事务 proxy表示本地事务(效率高)连接mycat 默认端口8066 用户名root 密码123456。注意:这里ip设为null表示任何ip都可以访问。插入数据查看主从节点是否都有数据。动态的设定这个值,它是立马生效的,无需重启。,需要从主节点读取数据,我们可以在程序中。"dw0" //主节点。"dr0" //从节点。也可以通过mycat语法去查询。当有事务强一致性要求时。
2024-09-18 23:14:10
855
原创 Mysql连接不上的问题?
Mysql服务器本地能访问,但是外部连接报错如下: 显然我也知道这就是一个权限问题,但是在网上百度的方法要么就是不生效,要么就是执行命令报错,很抓狂~ 这里提供精准的解决方案: SELECT User, Host FROM mysql.user WHERE User = 'root'; 确认一下权限是不是 如果只有localhost,则说明不提供外部IP访问的权限; 那么就要先执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; 再进行连接测试,o
2024-09-13 10:58:35
407
原创 什么是Aware注入?
Spring容器可以在Bean初始化的时候,自动注入一些特定信息(如beanfactory),使得bean可以轻松的访问其他Bean的实例,简化代码,避免了显式的注入。Spring提供了很多Aware的接口,如下:拿其中的BeanFactoryAware举例: 定义Bean helloAware。 HelloAware继承BeanFactoryAware,并重写setBeanFactory方法,使得beanFactory容器注入进HelloAware中,这样就可以轻松的获取其他B
2024-09-10 21:30:07
312
原创 BeanPostProcessor,BeanFactoryPostProcessor,InstantiationAwareBeanPostProcessor 三者区别?
BeanPostProcessor 用于Bean初始化前后的一些自定义操作。有的 Bean 定义加载完成后,但在任何 Bean 对象被实例化之前。Factory获得所有bean的定义。它的能力不是针对单个bean。
2024-09-10 15:15:19
394
原创 Node启动问题~
启动报错仓库连接失败? 如果 Taobao NPM 镜像经常出现问题,您可以考虑使用其他镜像站点。例如,您可以使用 CNPM 镜像 npm config set registry https://r.cnpmjs.org/ 执行npm install无法回调问题? 这里我改成sudo npm install就解决了
2024-09-09 22:59:10
263
原创 Idea Mac代码调试常用快捷键~
功能:Option+command+B 查看本类以及子类实现的方法。idea英文大写转小写 command+Shift+U。Mac截图 command+Shift+4。选中方法,control+option+H。功能:Command+B是查看本类的方法。快捷键 fn+command+F12。功能:查看类的实现和继承父类的方法。功能:查看当前方法的上游方法。
2024-09-08 23:57:26
479
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人