- 博客(11)
- 收藏
- 关注
原创 redo log 与 bin log 以及两阶段提交
当遇到宕机时,如果redo log 为prepare状态,然后binlog没有刷盘成功时宕机,就将redo log 回滚即可, 在redo log 和 bin log 都刷盘后,就直接提交事务即可(根据redo log 的XA事务id去binlog查看是否存在对应id的binlog来判断)1. 在redo log 刷盘成功后,mysql宕机,而binlog还灭有来的及写入,当重启后,会根据redo log 恢复,而binlog 里并没有对应记录,这时,从库的数据就会和主库不一致。
2024-03-14 22:46:40
474
1
原创 redis AOF持久化
那么这时就会触发写时复制,就是在对内存数据进行更改时,会真正的复制要修改的那份内存数据,然后子进程与父进程各有一份,不会影响到子进程的重写,但是重写结束后,新的AOF文件有没有新的命令记录?redis通过在执行重写期间,会创建一个重写缓存,会缓存在重写期间来的命令,然后重写结束后,将命令写入新的AOF文件中即可。2. 在接受子进程重写结束的通知后,会将缓存的新命令写入新的AOF文件也会阻塞主进程。然后主进程开启子进程去实现重写,将读取内存数据,然后生成命令,放在文件中。在重写期间什么时候会阻塞主进程?
2024-03-09 18:06:18
309
1
原创 redis 哨兵机制
哨兵一般会是一个集群,当有一个哨兵没有收到主节点的回应后,就会将主节点判断为主观下线,当判断为主观下线后,该哨兵就会向其他哨兵发起命令,其他哨兵收到这个命令后,就会根据自身和主节点的网络状况,做出赞成投票或者拒绝投票的响应,当赞成的票数达到quorum(一般设置为哨兵数量的二分之一加一) 后,就会认为主节点为主观下线。哨兵机制:它的作用是为了实现主从节点故障转移,它会监测主节点是否还存活,如果主节点挂了,他就会选举一个从节点切换为主节点,并且把新主节点的信息告诉从节点以及客户端。1. 拿到半数以上的票。
2024-03-07 15:13:02
237
原创 Redis 主从复制
1. 分摊主服务器压力,每一个链接的从服务器都需要全量复制,(并且都需要有一个replication buffer),在从服务器比较多的时候,会有可能阻塞主服务器,那么此时就可以让从服务器成为经历,从服务器又有从服务器,避免全部从服务器都连接到主服务器。redis的主从复制模式可以保证主从节点的数据一致性,并且主从服务器之间采用的是读写分离的方式。第三阶段是主服务器发送新的命令到给从服务器。至此就可以进行同步数据了(主从服务器之间通过一个TCP长连接传输数据)第二阶段是主服务器同步到从服务器。
2024-03-06 20:49:38
291
1
原创 Spring循环依赖
在Spring中存在三级缓存解决循环依赖问题一级缓存 SingletonObjects 存放的是实例化以及初始化后的完整的Bean二级缓存 earlySingletonObjects 存放的是半成品,只实例化还未初始化的Bean三级缓存 singletonFactories 存放的是生成某个Bean的工厂,用来创建Bean后Bean的代理对象二级缓存解决普通循环依赖问题但是如果A是要创建一个A的代理对象,就是说A这个类被增强了。
2024-03-05 18:40:39
124
原创 Bean的生命周期 简单理解
通过BeanDefinition来获取一个类的定义信息。(以流的方式读取XMl中的配置)2.调用类的构造方法,来实例化一个Bean。以上就是Bean的生命周期流程。
2024-03-05 15:56:45
125
原创 RabbitMq 保证消息的可靠性
RabbitMq中会有交换机 以及队列 那么需要保证消息的可靠性,得从生产者到交换机,以及交换机到队列,以及队列到消费者考虑。
2024-03-03 15:51:47
567
原创 拦截器 和shiro
在UserRleam中拿到登录对象,并取出数据库中的数据设置当前用户的权限 currentUser.getPerms());在controller中封装数据在token中,在自定义类releam的认证中可直接获得token 然后与数据库的数据进行对比。3 在方法中添加拦截器(注入controller中添加的拦截器bean,并在方法中使用),并设置拦截的访问路径,路经可以通。在config中设置权限,在UserRleam中授予用户权限。在方法里进行具体的拦截器配置。
2022-11-24 22:26:07
403
1
原创 io流
/当 fileOutputStream = new FileOutputStream(filepath,true);getName getAbsolutePath getParent length exists isFile(是否是文件)ctory(是否是目录)//fileOutputStream = new FileOutputStream(filepath);mkdir()创建以及目录,mkdirs()创建多级目录 delet()删除空目录或文件。在java编程中目录也被当做文件。
2022-11-17 21:40:02
74
原创 【无标题】linux
开关机 shutdownshutdown -h 计算机将在10分钟后关机shutdown -h 20:25 系统会在今天20:25关机shutdown -r now 系统立马重启shutdown -r +10 系统十分钟后重启最后总结一下,不管是重启系统还是关闭系统,首先要先运行sync命令,把内存中的数据写到磁盘中去系统目录结构:1:一切皆文件2:根目录/,所有的文件都挂载在这个节点下。
2022-11-11 11:46:21
152
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人