摘要: 一、关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题。 1. 为什么redis能以单工作线程处理高达几万的并发请求? 2. 什么是I/O多路复用?为什么redis、nginx、nodeJS以 阅读全文
posted @ 2020-11-10 23:47 小熊餐馆 阅读(1545) 评论(1) 推荐(2) 编辑
 
摘要: 1.从零开始实现stream流 1.1 java8 stream介绍 java8新增了stream流的特性,能够让用户以函数式的方式、更为简单的操纵集合等数据结构,并实现了用户无感知的并行计算。 1.2 从零开始实现一个stream流 相信很多人在使用过java8的streamAPI接口之后,都会对 阅读全文
posted @ 2019-03-14 22:12 小熊餐馆 阅读(40821) 评论(16) 推荐(24) 编辑
  2023年8月31日
摘要: # 手写raft(三) 实现日志压缩 在上一篇博客中MyRaft实现了日志复制功能,按照计划接下来需要实现日志压缩。 * [手写raft(一) 实现leader选举](https://www.cnblogs.com/xiaoxiongcanguan/p/17569697.html) * [手写raf 阅读全文
posted @ 2023-08-31 21:39 小熊餐馆 阅读(511) 评论(0) 推荐(0) 编辑
  2023年8月16日
摘要: ## 1. Raft日志复制介绍 在上一篇博客中MyRaft实现了leader选举,为接下来实现日志复制功能打下了基础: [手写raft(一) 实现leader选举](https://www.cnblogs.com/xiaoxiongcanguan/p/17569697.html) ##### 日志 阅读全文
posted @ 2023-08-16 21:41 小熊餐馆 阅读(498) 评论(0) 推荐(1) 编辑
  2023年7月20日
摘要: ## 1. 一致性算法介绍 ### 1.1 一致性同步与Paxos算法 * 对可靠性有很高要求的系统,通常都会额外部署1至多个机器为备用副本组成主备集群,避免出现单点故障。 有状态的系统需要主节点与备用副本间以某种方式进行数据复制,这样主节点出现故障时就能快速的令备用机器接管系统以达到高可用的目的。 阅读全文
posted @ 2023-07-20 21:32 小熊餐馆 阅读(704) 评论(1) 推荐(2) 编辑
  2023年7月13日
摘要: # In Search of an Understandable Consensus Algorithm(Extended Version) 寻找一种可理解的一致性算法(拓展版) ##### 作者:斯坦福大学的Diego Ongaro和John Ousterhout ## Abstract(摘要) 阅读全文
posted @ 2023-07-13 20:14 小熊餐馆 阅读(716) 评论(0) 推荐(0) 编辑
  2023年7月6日
摘要: # 自己动手实现rpc框架(二) 实现集群间rpc通信 ## 1. 集群间rpc通信 上一篇博客中MyRpc框架实现了基本的点对点rpc通信功能。而在这篇博客中我们需要实现MyRpc的集群间rpc通信功能。 * [自己动手实现rpc框架(一) 实现点对点的rpc通信](https://www.cnb 阅读全文
posted @ 2023-07-06 21:35 小熊餐馆 阅读(364) 评论(2) 推荐(2) 编辑
  2023年6月26日
摘要: # 自己动手实现rpc框架(一) 实现点对点的rpc通信 ## 1. 什么是rpc? **RPC**是远过程调用(Remote Procedure Call)的缩写形式,其区别于一个程序内部基本的过程调用(或者叫函数/方法调用)。 ##### 随着应用程序变得越来越复杂,在单个机器上中仅通过一个进程 阅读全文
posted @ 2023-06-26 21:29 小熊餐馆 阅读(765) 评论(0) 推荐(1) 编辑
  2023年2月16日
摘要: 时间轮工作原理解析 一.时间轮介绍 1.时间轮的简单介绍 时间轮(TimeWheel)作为一种高效率的计时器实现方案,在论文Hashed and Hierarchical Timing Wheels中被首次提出。 其被发明的主要目的在于解决当时操作系统的计时器功能实现中,维护一个定时器的开销随着所维 阅读全文
posted @ 2023-02-16 22:36 小熊餐馆 阅读(3590) 评论(1) 推荐(2) 编辑
  2022年12月22日
摘要: jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析 在日常开发中存在着调度延时任务、定时任务的需求,而jdk中提供了两种基于内存的任务调度工具,即相对早期的java.util.Timer类和java.util.concurrent中的ScheduledThread 阅读全文
posted @ 2022-12-22 23:07 小熊餐馆 阅读(731) 评论(0) 推荐(1) 编辑
  2022年11月17日
摘要: jdk线程池工作原理解析(二) 本篇博客是jdk线程池ThreadPoolExecutor工作原理解析系列博客的第二篇,在第一篇博客中从源码层面分析了ThreadPoolExecutor在RUNNING状态下处理任务的核心逻辑,而在这篇博客中将会详细讲解jdk线程池ThreadPoolExecuto 阅读全文
posted @ 2022-11-17 22:55 小熊餐馆 阅读(1567) 评论(2) 推荐(0) 编辑
  2022年11月11日
摘要: jdk线程池ThreadPoolExecutor工作原理解析(自己动手实现线程池)(一) 线程池介绍 在日常开发中经常会遇到需要使用其它线程将大量任务异步处理的场景(异步化以及提升系统的吞吐量),而在使用线程的过程中却存在着两个痛点。 在java等很多主流语言中每个逻辑上的线程底层都对应着一个系统线 阅读全文
posted @ 2022-11-11 00:05 小熊餐馆 阅读(917) 评论(0) 推荐(1) 编辑