Go三件套基础知识 | 青训营笔记

84 阅读3分钟

这是我参与「第五届青训营 」笔记创作活动的第5天

一、本文内容:

  • Go框架三件套介绍

  • Gorm

  • Kitex

  • Hertz

二、详细介绍

Go框架三件套介绍

  1. Gorm

Gorm是一个ORM框架。ORM 全称Object–relational mapping,即对象关系映射,是一种用于在关系数据库和面向对象的编程语言堆之间转换数据的编程技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。通过 ORM 技术,我们可以将关系数据库中某个数据表的结构关联到某个类/结构体上,并通过修改类/结构体实例的方式轻易的完成数据库增删改查(CRUD)的任务。

Gorm 是 Go 语言中实现对象和数据库映射的框架,可以有效地提高开发数据库应用的效率。 Gorm 主要用途是把 struct类型 和 数据库表 进行映射,使用简单方便。 因此,使用 Gorm 操作数据库的时候一般不需要直接手写 SQL 语句代码。

  1. Kitex

Kitex是一个RPC框架。RPC 全称Remote Procedure Call,即远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。通过 RPC协议,我们可以像调用方法一样快捷的与远程服务进行交互。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

Kitex 是 Go 语言中实现的RPC框架,默认支持 thrift 和 proto3 两种 IDL,对应的 Kitex 支持 thrift 和 protobuf 两种序列化协议。

  1. Hertz

Hertz是一个HTTP框架,HTTP 协议是当今使用最为广泛的协议之一,HTTP 是前(客户)端与服务端通信的基础协议。HTTP 框架负责的就是对 HTTP 请求的解析、根据对应的路由选择对应的后端逻辑了,HTTP 在企业实际业务场景中使用广泛。

Hertz是 Go 语言中实现的HTTP 框架。具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。

本文如有不足之处,欢迎大家指出