这是我参与「第五届青训营」笔记创作活动的第十天
一、介绍
- Gorm:Gorm是一个已经迭代了10年+的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展
- Kitex:Kitex是字节内部的Golang微服务RPC框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有丰富的开源扩展
- Hertz:Hertz是字节内部的HTTP框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、高性能、高扩展性特点
二、三件套的使用
(一)gorm
1、Gorm基本使用
- Gorm使用名为ID的字段作为主键
- 使用结构体的蛇形复数作为表名
- 字段名的蛇形作为列名
2、支持的数据库
gorm目前支持MySQL、SQLServer、PostgreSQL、SQLite
3、事务
gorm提供了begin、commit、rollback方法用于使用事务
- begin:开始事务
- commit:提交事务
- rollback:回滚事务
- transaction:自动提交事务
4、hook
hook是在创建、查询、更新、删除等操作之前、之后自动调用的函数
- 如果任何hook返回错误,gorm将停止后续的操作并回滚事务
5、gorm性能提高
对于写操作,为了确保数据的完整性,gorm会将它们封装在事务内运行,但这会降低性能,可以使用SkipDefaultTransaction关闭默认事务
(二)kitex
kitex目前不支持windows系统,推荐使用linux
1、IDL
IDL用来定义服务与接口,如果要进行RPC,就需要知道接口、参数、返回值,IDL可以完成这些工作
2、kitex生成代码
使用kitex -module example -service example echo.thrift命令生成代码
(三)hertz
1、基本使用
Hertz是一个Golang微服务HTTP框架,在设计之初参考了其他开源框架的优势,并结合内部的需求,使其具有高易用性、高性能、高扩展性等特点
2、hertz路由
- hertz提供了路由组的能力,用于支持路由分组的功能
- hertz提供了参数路由和通配路由,路由的优先级为:静态路由 > 命名路由 > 通配路由