摘要: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 @Author:Akai-yuan @更新时间:2023/1/31 阅读全文
posted @ 2023-01-31 23:58 AKAI_CHI 阅读(560) 评论(1) 推荐(4)
摘要: SOFAJRaft的定时任务调度器是基于Netty来实现的,所以本文将会基于Netty时间轮算法,然后再结合SOFAJRaft源码进行分析。 @Author:Akai-yuan @更新时间:2023/1/29 1.HashedWheelTimer概览 一个时间轮算法的组成成分图: 一个基于Netty 阅读全文
posted @ 2023-01-29 17:09 AKAI_CHI 阅读(265) 评论(0) 推荐(2)
摘要: 本文总结自:极客时间韩健老师的分布式协议与算法实战课程。 为什么要学习Paxos算法?其实关于这个问题的答案,每个人有不同的看法。其实对我来说,我认为当前很多常用的共识算法都是基于它改进,我学习它的初衷也是为了更好的去理解Raft算法。如果你想深入理解RAFT算法,博主在这里推荐蚂蚁金服的SOFAJ 阅读全文
posted @ 2023-01-28 23:27 AKAI_CHI 阅读(367) 评论(0) 推荐(1)
摘要: 1.强一致性与最终一致性 1.1强一致性 强一致性能保证写操作完成后,任何后续访问都能读到更新后的值;强一致性可以保证从库有与主库一致的数据。如果主库突然宕机,我们仍可以保证数据完整。但如果从库宕机或网络阻塞,主库就无法完成写入操作。 1.2最终一致性 最终一致性只能保证如果对某个对象没有新的写操作 阅读全文
posted @ 2023-01-27 23:22 AKAI_CHI 阅读(223) 评论(0) 推荐(0)
摘要: Java程序经常会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。JAVA中的ShutdownHook提供了比较好的方案。而在SOFAJRaft-example模块的CounterServer-main方法中就使用了shutdownHook实现优 阅读全文
posted @ 2023-01-25 14:30 AKAI_CHI 阅读(219) 评论(0) 推荐(1)
摘要: 网上有很多资料说 Kryo 只能在 Java 上使用,这点是不对的,事实上除 Java 外,Scala 和 Kotlin 这些基于 JVM 的语言同样可以使用 Kryo 实现序列化。 1.使用方法 (1)添加kyro依赖 <dependency> <groupId>com.esotericsoftw 阅读全文
posted @ 2023-01-24 20:31 AKAI_CHI 阅读(721) 评论(0) 推荐(0)
摘要: Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。与Kafka、RabbitMQ用于服务间的消息队列不同,disruptor一般用于线程间消息的传递。基于Disruptor开发的系统单线程能支撑每秒600万订单。因为在SOFAJRaft中使用了该框 阅读全文
posted @ 2023-01-23 17:08 AKAI_CHI 阅读(422) 评论(0) 推荐(0)
摘要: 本篇文章旨在分析SOFAJRaft中jraft-example模块的启动过程,由于SOFAJRaft在持续开源的过程中,所以无法保证示例代码永远是最新的,要是有较大的变动或者纰漏、错误的地方,欢迎大家留言讨论。 @Author:Akai-yuan 更新时间:2023年1月20日 写在前面: SOFA 阅读全文
posted @ 2023-01-22 10:38 AKAI_CHI 阅读(260) 评论(0) 推荐(2)
摘要: 1.CPU缓存 要了解什么是伪共享,首先得了解CPU缓存架构与缓存行的知识 (1)CPU缓存架构 主内存RAM是数据存在的地方,CPU和主内存之间有好几级缓存,因为即使直接访问主内存相对来说也是非常慢的。如果对一块数据做相同的运算多次,那么在执行运算的时候把它加载到离CPU很近的地方就有意义了,避免 阅读全文
posted @ 2023-01-21 14:37 AKAI_CHI 阅读(156) 评论(3) 推荐(1)
摘要: 本篇文章将会以redis集群为例,分享在主从集群中会导致数据丢失的一个问题:BrainSplit-集群脑裂 1.什么是集群脑裂 所谓的脑裂,就是指在主从集群中,同时有两个主节点,它们都能接收写请求。而脑裂最直接的影响,就是客户端不知道应该往哪个主节点写入数据,结果就是不同的客户端会往不同的主节点上写 阅读全文
posted @ 2023-01-19 16:10 AKAI_CHI 阅读(90) 评论(0) 推荐(0)