自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 SpringBean的声明周期

工厂后处理器:AspectJWeavingEnabler, ConfigurationClassPostProcessor, CustomAutowireConfigurer等等  接口的方法。后置处理器:InstantiationAwareBeanPostProcessor 和 BeanPostProcessor 这两个接口实现。

2024-08-29 12:18:48 756

原创 微服务之Dubbo

Dubbo是为了解决公司内部服务之前高效调用的一种框架,它是采用RPC调用(提供高效的序列化方式网络基于Netty/Sockket,长连接内网调用链路短、安全、不需要请求头、拼接Body。

2024-08-27 11:59:48 624

原创 Synchronized和Lock、AQS

ReentrantLock是Lock接口的一个实现类,是一个独占式可重入锁。相比synchronized,ReentrantLock提供了更高的灵活性和控制能力,如支持公平锁、非公平锁、可中断、超时等特性。ReentrantLock的底层实现依赖于AbstractQueuedSynchronizer(AQS)同步器。原理ReentrantLock的实现原理主要涉及到AQS(AbstractQueuedSynchronizer)同步器和Condition条件队列。

2024-08-24 17:14:27 766

原创 ThreadLocal

ThreadLocal 是 Java 中用于实现线程局部变量的一个类。它允许每个线程都拥有自己的变量副本,从而避免了多个线程之间的共享和竞争问题。在多线程环境下,当需要保持线程安全性的数据访问,或者需要在多个方法之间共享数据但又不想通过传递参数的方式时,ThreadLocal 提供了一个很好的解决方案。

2024-08-24 16:25:16 814

原创 Java线程池详解

Java线程池(Executor Framework)是Java并发包java.util.concurrent提供的一个框架,用于管理一组工作线程(线程池),通过重用现有的线程而不是为每个任务创建新线程,来减少线程创建和销毁的开销,从而提高程序性能。

2024-08-24 16:06:19 957

原创 Java线程

Java线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。每个线程都有自己独立的执行路径,但共享进程的内存空间和其他资源。Java通过java.lang.Thread类来支持多线程编程。

2024-08-24 15:52:42 618

原创 Mysql的日志undo log、redo log 、 binlog

undo log(回滚日志)作用:事务回滚:undo log 用于实现事务的原子性。在事务处理过程中,如果出现错误或者用户执行 ROLLBACK 语句,MySQL 可以利用 undo log 中的备份将数据恢复到事务开始之前的状态。多版本并发控制(MVCC):undo log 在 MySQL InnoDB 存储引擎中用于实现多版本并发控制。事务未提交之前,当读取的某一行被其他事务锁定时,它可以从 undo log 中分析出该行记录以前的数据是什么,从而提供该行版本信息,让用户实现非锁定一致性读

2024-08-23 16:15:51 386

原创 Mysql中的锁

在这个例子中,InnoDB会对id为10到19的记录加行锁,并对id为10到20之间的间隙加间隙锁,形成临键锁。注意:在这个例子中,由于id为10到20之间的记录不存在,所以实际上加的是间隙锁,而不是行锁。假设有一个名为users的表,包含id和name两个字段,其中id是主键。

2024-08-23 16:12:05 328

原创 MVCC机制个人学习与理解

如果大于最小事物id

2024-08-20 14:11:23 328

原创 RocketMQ学习

要顺序消费,必须保证生产是顺序的,可以用单一的生产者、或串行排队生产还要设置相同的shardingkey,这样rockermq会把消息放在同一个queue里,保证消息顺序。每个topic都有queeen里面放着索引offset、通过offset索引到真实消息对应的commitlog文件位置的起点然后读取到topic对应的实际内容,不用纠结是consumer queen还是message queen,有时我们需要消息的顺序必须是一致有序的(数据增量同步)。topic:消息主题,用于消息的逻辑分类。

2024-08-20 12:10:06 504

原创 Java JVM学习整理

1.8之前线程共享 : 堆、方法区(运行时常量池)、。现成私有:虚拟机栈、本地方法栈、程序技术器1.8后现成共享:堆、元空间现成私有:虚拟机栈、本地方法栈、程序技术器。

2024-08-18 20:45:32 695

原创 Redission 的使用 与watchDog

wactchDog锁续期原理:当一个Redisson客户端实例获取到一个分布式锁时,如果没有指定锁的超时时间,Watchdog会基于Netty的时间轮启动一个定时任务,每10秒定期向Redis发送命令,重新设定过期时间,通常是锁的租约时间的1/3也就是30秒。这确保了即使客户端处理时间较长,所特有的锁也不会过期。当锁被释放或者客户端实例被关闭时,Watchdog会自动停止对应锁的续租任务。第一次加锁自动创建看门狗定时任务.

2024-08-16 17:32:38 425

原创 中间件Redis

在主从复制模式下,数据从主节点复制到从节点,当主节点出现故障时,从节点可以接管主节点的角色继续提供服务。在哨兵模式下,哨兵会监控主节点和从节点的状态,并在主节点出现故障时自动进行故障转移。而在集群模式下,集群会自动处理节点的故障和恢复过程。在Redis集群中,当主节点出现故障时,从节点会发起选举投票机制来选举出新的主节点。所有主节点都会参与投票,当超过半数的主节点同意某个从节点成为新的主节点时,该从节点就会被提升为主节点。这个过程是自动的,不需要人工干预。

2024-08-15 20:09:29 1021

原创 Java微服务的注册中心Nacos

Nacos的相关问题

2024-08-15 13:03:58 413

原创 Java微服务的注册中心Zookeeper

ZooKeeper的工作原理主要基于其提供的数据模型和一致性协议。客户端注册Watcher后,一旦Watcher被触发,ZooKeeper会将其从存储中移除,并通知客户端进行相应的业务处理。ZooKeeper在CAP(一致性、可用性、分区容错性)理论中的取舍是,它选择了一致性(C)和分区容错性(P),而牺牲了部分可用性(A)。ZooKeeper通过ZAB协议和主从复制机制来保证数据的一致性,但在网络分区或Leader宕机等情况下,可能会导致部分客户端无法访问ZooKeeper服务,从而牺牲了部分可用性。

2024-08-15 12:05:00 653

原创 Mysql的索引

mysql索引相关的学习

2024-08-14 18:41:51 663

原创 mysql的主键索引与唯一索引的区别

mysql主键索引与唯一索引的区别

2024-08-14 17:34:09 398

原创 一条Update语句的执行流程。

一条Update语句的执行过程

2024-08-14 17:15:36 287

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除