月度归档: 2022年10月

5 篇文章

thumbnail
Go 进阶训练营 – 评论系统架构设计三:存储设计
存储设计 comment_subject 抽象的主题表,把评论的主体抽象出来,包含专有属性,例如state。 id:mysql必须有主键,不建立主键mysql也会提供一个rowId 使用自增,为了顺序存储,提高读写性能。 索引搜索快还是主键搜索快? 索引搜索是根据索引字段找到主键,再通过主键去找到记录,也就是二级索引。 用递增int不会带来安全性问…
thumbnail
Go 进阶训练营 – 评论系统架构设计二:详细设计
详细设计 comment-service 专注在评论数据处理(认真想下 Separation of Concerns 关注点分离,职责更清晰)。我们一开始是 comment-service 和 comment 是一层,业务耦合和功能耦合在一起,非常不利于迭代,当然在设计层面可以考虑目录结构进行拆分,但是架构层次来说,迭代隔离也是好的。 读的核心逻辑…
thumbnail
Go 进阶训练营 – 评论系统架构设计一:概要设计
评论系统架构设计 这节课程是结合实际业务场景,来做系统架构设计。 架构设计 做架构设计前,需要深度理解产品的业务背景,才能做出更好的设计与抽象,而不是简单的翻译需求。 例如视频评论系统,就可以抽象出通用的评论功能,从而实现评论平台,接入到各种业务形态:文章评论、漫画评论等。 核心功能 发布评论: 支持回复楼层、楼中楼。 读取评论: 按照时间、热度排…
Go 进阶训练营 – Go 工程化实践三:配置管理
配置分类 环境变量(配置) 在部署、运行时能获取到的信息,没必要放到配置文件里。可通过K8S注入到容器或者物理机,供kit 库读取使用。 Region:区域 Zone:可用区 Cluster:集群 Environment:环境,由集群本身决定,而不是取决于应用 Color:染色信息,可用于分发流量,实现多租户 Discovery:注册中心?课程没说…
thumbnail
Go 进阶训练营 – Go 工程化实践二:API 设计
API 定义文件放在哪? 放在当前项目 使用时,需要import此项目,造成API和源码绑定,不好单独管理权限。 放在当前项目,并通过CI自动同步到API大仓——B站的方案 为了统一检索和规范 API,B站内部建立了一个统一的 bapis 仓库,整合所有对内对外 API。 参考 https://github.com/googleapis/googl…