03 2023 档案
摘要:可用性之服务隔离 服务隔离的目的 在系统发生故障时限制其影响范围 隔离在保障整个服务的可用性上具有重要作用 隔离维度 线程级别的隔离:不同的任务给不同的线程执行 进程级别的隔离:将系统业务拆分成多个微服务,部署到不同的机器上 进程间的通信方式:不同机器经过远程调用,相同机器通过内存,管道(内存中的一
阅读全文
摘要:Raft各阶段的描述 node有三个state:follwer candidate leader 所有节点一开始是follower state,如果followers没有收到leader的消息,那么他们可以成为candidate。 然后candidate请求其他节点投票(request vote),
阅读全文
摘要:采用一致性hash算法将key分散到不同的节点,客户端可以连接到集群中任意一个节点 https://github.com/csgopher/go-redis 本文涉及以下文件: consistenthash:实现添加和选择节点方法 standalone_database:单机database cli
阅读全文
摘要:将用户发来的指令以RESP协议的形式存储在本地的AOF文件,重启Redis后执行此文件恢复数据 https://github.com/csgopher/go-redis 本文涉及以下文件: redis.conf:配置文件 aof:实现aof redis.conf appendonly yes app
阅读全文
摘要:实现Redis的database层(核心层:处理命令并返回) https://github.com/csgopher/go-redis 本文涉及以下文件: dict:定义字典的一些方法 sync_dict:实现dict db:分数据库 command:定义指令 ping,keys,string:指令
阅读全文
摘要:本文实现Redis的协议层,协议层负责解析指令,然后将指令交给核心database执行 echo database用来测试协议层的代码 https://github.com/csgopher/go-redis 本文涉及以下文件: conn:定义连接接口 interface/reply:定义各类响应接
阅读全文
摘要:本文实现一个Echo TCP Server 完整代码:https://github.com/csgopher/go-redis 本文涉及以下文件: handler:处理连接,客户端传来的指令 server:服务端 echo:测试 main interface/tcp/Handler.go type
阅读全文

浙公网安备 33010602011771号