
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了实时社交系统 SwiftChatSystem 的接入层网关 GateSvr 的设计与实现。GateSvr 作为客户端统一接入点,采用 WebSocket 管理长连接(端口 9090),通过 gRPC(端口 9091)与 ZoneSvr 交互。核心功能包括:连接生命周期管理、协议解析(基于 cmd+payload 的 Protobuf 信封格式)、心跳检测和登录绑定机制(建立 conn_i

本文介绍了社交系统后端 Protobuf 协议的统一设计实践。主要内容包括: 协议设计必要性:统一协议可避免重复劳动、便于排查错误、简化升级维护 文件组织架构: 按服务划分 proto 文件 公共类型放在 common.proto 业务 proto 按需引用公共 proto 通用类型设计: CommonResponse 包装简单结果 标准化分页和时间戳格式 统一错误码处理 命名规范: 请求/响应命

摘要 本文介绍了SwiftChatSystem后端中OnlineSvr服务的核心功能与实现细节,重点阐述了登录态管理机制。OnlineSvr主要负责JWT令牌的签发、会话存储和单设备登录策略,与AuthSvr形成职责分离。系统采用RocksDB存储会话数据,通过SessionStore接口管理用户会话状态。关键特性包括:1)单设备策略确保同一用户只能在一个设备保持活跃会话;2)区分JwtVerif

摘要:ZoneSvr中的RPC客户端封装与调用机制 ZoneSvr作为API网关,采用RpcClientBase基类统一管理gRPC连接、超时和Token注入等通用功能,各业务RPC客户端(如FriendRpcClient、ChatRpcClient)只需专注请求/响应处理。RpcClientBase实现了连接管理(支持异步等待就绪)、消息大小配置(64MB限制)以及带超时和JWT注入的Conte

我们创建一个新文件,起名为demo1.pyimport os我们通过查看文档可知,所有的数据集都应该继承Dataset类,并且子类都必须重写__getitem__方法,该方法的主要作用是获取每一个数据以及其label,也可以选择性重写__len__方法,获取数据集的大小。所以我们定义一个类MyData#构造方法,将文件夹名称以及子文件夹传入#获取数据集中第idx个数据以及其label,我们可以通过

本文是 SwiftChatSystem 后端系列博客的第十四篇(末篇),介绍本地部署的配置与启动顺序、端口规划、Docker Compose 构建与运行、Minikube 下的 K8s 部署(ConfigMap、PV/PVC、Deployment、Service)、环境变量约定,以及未来可扩展方向(MySQL、Redis、MinIO、HPA、Prometheus)。

本文介绍了SwiftChatSystem高性能C++社交平台微服务架构的设计思路。该系统采用分层架构,包括接入层(GateSvr)、路由层(ZoneSvr)和业务服务层,通过Zone-System模式实现统一入口和业务分发。后端服务采用Handler→Service→Store三层结构,支持私聊、群聊、好友等完整社交功能。系统使用C++17开发,基于gRPC通信,采用RocksDB存储,并预留云原

我们创建一个新文件,起名为demo1.pyimport os我们通过查看文档可知,所有的数据集都应该继承Dataset类,并且子类都必须重写__getitem__方法,该方法的主要作用是获取每一个数据以及其label,也可以选择性重写__len__方法,获取数据集的大小。所以我们定义一个类MyData#构造方法,将文件夹名称以及子文件夹传入#获取数据集中第idx个数据以及其label,我们可以通过

我们创建一个新文件,起名为demo1.pyimport os我们通过查看文档可知,所有的数据集都应该继承Dataset类,并且子类都必须重写__getitem__方法,该方法的主要作用是获取每一个数据以及其label,也可以选择性重写__len__方法,获取数据集的大小。所以我们定义一个类MyData#构造方法,将文件夹名称以及子文件夹传入#获取数据集中第idx个数据以及其label,我们可以通过

顺序表的本质其实就是使用一个数组对数据进行存储,我们在此博客中,基于C++的类与对象来实现顺序表。








