业务设计 rpc 好友业务 列出用户的所有好友 申请好友 列出收到的好友申请 处理好友申请 群组业务 创建群组 列出群组 列出群组内用户 申请入群 列出入群申请 处理入群申请 列出用户加入的群 .proto syntax = "proto3"; package social; option go_package = "…
今天完成了用户相关业务的api及rpc的设计和实现。业务方面很简单,包括注册、登录、获取信息、查找用户,都很好实现,就不写了。主要记录我遇到的一个坑,一度让我怀疑是go-zero的问题,最终在看了几个小时源码之后确定了是自己的问题。不过也不亏,起码学习了go-zero中对于缓存处理的实现。 问题出在注册业务上,我的rpc内注册逻辑是这样写的: fu…
基于go-zero的微服务即时通讯项目day0——需求分析

项目业务 该项目为一个 im 即时通讯项目,根据项目业务可以分为三个核心业务: 用户业务 用户登录、注册、详情、查找等 社交业务【好友、群】 好友:好友添加、列表等 群:进群、退群、列表等 聊天业务 私聊、群聊、聊天记录等 项目架构
【转载】Raft一致性算法论文的中文翻译
Go接口/空接口/接口断言
本文转载自 GitHub ,原文地址:maemual/raft-zh_cn - GitHub 寻找一种易于理解的一致性算法(扩展版) 摘要 Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Ra…
仓库地址 FoyonaCZY/MIT6.824 - GitHub 前言 在刚开始学习 Go 的时候,就听说过 MIT 6.824(现在叫 6.8540),是一门很经典且口碑很好的分布式课程。两天前我开始学习这门课程,并在刚刚完成了 Lab 1 。 在此总结一下目前对 MapReduce 的理解和做 Lab 1 过程中的心得体会。 MapReduce…
在 Go 语言中,接口(interface)是一种类型,它定义了一组方法的集合。接口提供了一种方式来指定对象的行为,而无需关注对象的具体类型。接口的存在有以下几个重要意义: 多态性(Polymorphism):接口使得多态性成为可能。通过接口,可以创建具有不同底层类型但实现了相同接口的对象,然后使用相同的方式调用这些对象的方法。这种特性使得代码更加…