03 2023 档案

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