[Go框架三件套|青训营笔记]

124 阅读2分钟

[Go框架三件套|青训营笔记]
这是我参加「第五届青训营」伴学笔记的第八天

前言
记录青训营后端专场学习过程,有不足的地方还请大佬指正。
由于本人基础较为薄弱,所以笔记尽可能详细

Gorm框架

基本使用:

截屏2023-02-08 22.08.51.png

  • 定义一个结构体为gorm model
  • 需要编写该结构体的TableName方法并返回该数据库的表名(否则gorm框架会默认使用结构体蛇形负数作为表名,如下图) 截屏2023-02-08 22.47.23.png
  • gorm默认使用字段名的蛇形作为列名,如想显示的对应则在字段后添加`gorm:"column:列名"
  • gorm使用CreateAt、UpdateAt字段作为创建更新时间

更多的crud内容可以看官方文档,这里不做更多的解释。


Kitx 框架

rpc简介

RPC(Remote Procedure Call Protocol)-远程过程调用协议。通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它假定某种传输协议的存在,如TCP,UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,因分布式,微服务等而兴起

其实简单点来理解,就是比如有一个应用1,通过网络调用了应用2的服务,而不用关心应用2的协议。这就是最简单的示例。

rpc的C/S模式

RPC采用client-server结构,通过request-response消息模式实现,如果服务器的程序进行了更新,那客户端方面也需要同步更新才能正常使用

image.png

定义IDL

我们如果要进行RPC,就需要对方的接口是什么,需要传什么参数,同时知道返回值是什么。这时候就需要IDL来约定双方的协议。关于IDL的定义有两种规范,分别是Thrift和Proto3,具体格式可以参考官方文档,下图是Thrift格式的IDL的例子 截屏2023-02-13 11.00.39.png