本文讲一下如何在 go-zero 连接 kafka 并引入若干个消费者。 我们先来看一下 go-zero 中的 kafka 配置项: github.com\zeromicro\go-queue@v1.2.2\kq\config.go package kq import "github.com/zeromicro/go-zero/core/…
为什么需要Keepalive机制? 防止中间设备造成的连接中断。许多网络中间设备(如 NAT 网关、防火墙、负载均衡器)会主动关闭长时间无数据交互的 TCP 连接,以节省资源。 检测连接的健康状态。在网络异常(如断网、服务崩溃)时,TCP 层可能不会立即感知连接失效,导致应用层误认为连接仍有效,后续请求会失败。 优化资源利用率。长连接可能因客户端异…
业务设计 rpc 好友业务 列出用户的所有好友 申请好友 列出收到的好友申请 处理好友申请 群组业务 创建群组 列出群组 列出群组内用户 申请入群 列出入群申请 处理入群申请 列出用户加入的群 .proto syntax = "proto3"; package social; option go_package = "…
今天完成了用户相关业务的api及rpc的设计和实现。业务方面很简单,包括注册、登录、获取信息、查找用户,都很好实现,就不写了。主要记录我遇到的一个坑,一度让我怀疑是go-zero的问题,最终在看了几个小时源码之后确定了是自己的问题。不过也不亏,起码学习了go-zero中对于缓存处理的实现。 问题出在注册业务上,我的rpc内注册逻辑是这样写的: fu…
基于go-zero的微服务即时通讯项目day0——需求分析
项目业务 该项目为一个 im 即时通讯项目,根据项目业务可以分为三个核心业务: 用户业务 用户登录、注册、详情、查找等 社交业务【好友、群】 好友:好友添加、列表等 群:进群、退群、列表等 聊天业务 私聊、群聊、聊天记录等 项目架构