这是我参与「第五届青训营 」伴学笔记创作活动的第2天
三件套介绍
GORM
GORM(go-gorm/gorm: The fantastic ORM library for Golang, aims to be developer friendly (github.com))是开源的golang ORM库(ORM的全称是Object–relational mapping,它提供易于使用的访问关系型数据库的API,使得开发者能如同使用面向对象语言一般地操作数据库),在字节内部被广泛使用并且拥有丰富的开源插件
Kitex
Kitex(cloudwego/kitex: Go RPC framework with high-performance and strong-extensibility for building micro-services. (github.com))是字节内部的Golang RPC框架,具有高性能与强可拓展性的特点,可以帮助开发者构建微服务。Kitex支持多种RPC通信协议,包括apache的thrift、kitex的protobuf和gRPC。微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。使用微服务架构,将应用程序构建为独立的组件,并将每个应用程序进程作为一项服务运行。这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务是围绕业务功能构建的,每项服务执行一项功能。由于它们是独立运行的,因此可以针对各项服务进行更新、部署和扩展,以满足对应用程序特定功能的需求。微服务可以通过RPC(Remote Procedure Call)进行通信。
Hertz
Hertz(cloudwego/hertz: Go HTTP framework with high-performance and strong-extensibility for building micro-services. (github.com))是字节内部的HTTP框架,借助Hertz可以快速地开发出能响应GET、POST等请求的HTTP服务器。Hertz还提供了HTTP Client用于帮助用户发送HTTP请求。Hertz提供了代码生成工具Hz,通过定义IDL文件即可生成对应的基础服务代码。