2021年4月8日
摘要: 在使用Springboot的时候,都要涉及到服务的停止和启动,当我们停止服务的时候,很多时候大家都是kill -9 直接把程序进程杀掉,这样程序不会执行优雅的关闭。而且一些没有执行完的程序就会直接退出。 我们很多时候都需要安全的将服务停止,也就是把没有处理完的工作继续处理完成。比如停止一些依赖的服务 阅读全文
posted @ 2021-04-08 19:18 清浊 阅读(908) 评论(1) 推荐(0) 编辑
摘要: 什么是MVVC MVVC是mysql的的多版本并发控制即multi-Version Concurrency Controller,mysql的innodb引擎支持MVVC,在事务级别为RR(可重复读)和RC(读提交)生效。 工作原理实现原理借助3个隐藏字段、undo log、read view实现 阅读全文
posted @ 2021-04-08 09:42 清浊 阅读(271) 评论(0) 推荐(0) 编辑
  2021年3月15日
摘要: ,服务器初始窗口大小为5000字节。客户端发送2000字节,之后又发送了2000字节,缓冲区中只有1000字节可用。服务器意识到缓冲区正在快速填满,它知道如果数据继续以此速率传输,很快会有报文丢失。为了防止报文丢失,服务器发送确认信息给客户端,更新窗口大小为1000字节。结果,客户端减少数据发送,服 阅读全文
posted @ 2021-03-15 19:53 清浊 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 1、线程调度算法 抢占式 线程执行时间由系统控制,线程的切换也依靠系统控制,有可能每个线程获得相同的时间片,有可能某些线程更长,有可能某些线程没有时间片,这种调度方式不会因为 线程阻塞导致整个进程阻塞。 协调式 一个线程执行完毕后通知另外一个线程继续执行,像接力赛,线程执行由线程本身控制。有一个致命 阅读全文
posted @ 2021-03-15 12:40 清浊 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 事务编号 在ZAB,原子消息广播协议的事务编号ZXID设计中,ZXID是一个64位数字,低32位是一个单调递增的计数器,针对每一个事务请求,计数器加1.高32位则代表leader周期epoch的编号,每个当选产生一个新的的leader服务器,就会从这个leader服务器中读出本地事务日志中的最大zx 阅读全文
posted @ 2021-03-15 11:29 清浊 阅读(143) 评论(0) 推荐(0) 编辑
  2021年3月14日
摘要: 第二个亚军 只有冠军才能打败亚军,所以亚军一定出现再冠军晋级的路上 如图中所示,我们把原本的冠军选手5排除掉,在四分之一决赛和他同一组的选手6就自然获得了直接晋级。 接下来的半决赛,选手7打败选手6晋级;在总决赛,选手7打败选手3晋级,成为了新的冠军。 因此我们可以判断出,选手7是总体上的亚军。 假 阅读全文
posted @ 2021-03-14 21:41 清浊 阅读(720) 评论(0) 推荐(0) 编辑
摘要: redis-cluster不可用情况 1、集群主库半数宕机 2、集群某个节点的主从全数宕机 当某个master挂掉后,在cluster集群仍然可用的前提夏,由于某个master有多个slave,某个slave提升为master,这个过程称为选举。 currentEpoch 这是一个集群状态相关的概念 阅读全文
posted @ 2021-03-14 21:19 清浊 阅读(1129) 评论(0) 推荐(0) 编辑
  2021年3月3日
摘要: cp协议和udp协议的差别 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建 阅读全文
posted @ 2021-03-03 16:07 清浊 阅读(52) 评论(0) 推荐(0) 编辑
  2021年3月1日
摘要: 三次握手 第一次握手,客户端发送syn包,并进入SYN_SEND状态等待服务器确认。 第二次握手,服务器收到syn包,必须确认客户的syn包ack+1,同时发送自己的syn包。即SYN+ACK包,服务器进入SYN_RECV状态。 第三次握手,客户端收到服务器syn+ack包,向服务器发送ack包,服 阅读全文
posted @ 2021-03-01 13:59 清浊 阅读(59) 评论(0) 推荐(0) 编辑
  2021年2月27日
摘要: 四、分布式锁 传统的锁可解决在一台服务器上多个线程之间的并发冲突,但有些场景下多台服务器需要进行同一操作,这时为了协调多台服务器就需要分布式锁(由第三方提供锁)。分布式锁常用的是两种实现方式:使用Redis或Zookeeper。 4.1Redis自带的原语 Redis是一个key value数据库, 阅读全文
posted @ 2021-02-27 22:54 清浊 阅读(351) 评论(0) 推荐(0) 编辑