Go框架之唱、跳、RAP三件套(GORM、Kitex、Hertz) | 青训营笔记

135 阅读3分钟

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

前言

框架是具有通用功能的底层服务,使用框架的编程人员可以在框架提供的通用功能的基础上进行系统开发,例如Gin是使用Go编写的web框架,提供了一系列HTTP服务。本节课介绍了GORM、Kitex、Hertz框架。

详细知识点介绍

Gorm

数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

Structured Query Language (SQL)即结构化查询语言,是用来操作数据库数据的语言,通常包含增(Create)、查(Read)、改(Update)、删(Delete)等操作,即常见的CRUD。

Data Source Name (DSN)即数据来源名称,当创建好一个数据库之后需要在系统中调用这个数据库时,系统需要知道数据的来源,所以就需要设定系统的DSN,DSN包含了数据库名称、目录、用户账号、密码等信息。

了解了上面这些概念以后就能够开始介绍我们今天所涉及到的Go Object Relational Mapping(GORM)。GORM是使用Go语言开发的一款ORM库,其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来,例如一个结构体对象对应着数据库中的一张表,这个对象的实例,就对应着表中的一条记录。GORM的基础操作最好查看GORM文档十分详细,这里就不过多进行介绍。

Kitex

Kitex是字节内部的Golang微服务``PRC框架

微服务是是采用容器技术的面向服务架构。早期的软件把所有的功能写到一起,即单体架构(monolithic software),随着软件的功能越多,单体结构越来越复杂会带来许多问题:

  • 功能难以管理,所有功能都耦合在一起相互影响
  • 代码维护困难,哪怕只修改一行代码,整个软件都要重新编译和部署,并且难以对功能单独进行开发和测试

为了解决以上问题,有人提出了面向服务架构,就是把一个大型单体程序拆分成许多个独立的服务,也就是较小的程序。每个服务都是一个独立的功能单元,服务之间通过通信协议连在一起。这种架构有着许多优点:

  • 便于开发和测试,每种服务功能单一,相当于一个小型软件
  • 各个服务独立运行,简化了架构,提高了可靠性
  • 鼓励和支持代码重用,同一个服务可以用于多种目的
  • 不同服务可以单独开发和部署,便于升级
  • 扩展性好,可以容易地加机器、加功能,承受高负载
  • 不容易出现单点故障。即使一个服务失败了,不会影响到其他服务

RPC(Remote Procedure Call Protocol)远程过程调用协议,主要目的是做到不同服务间调用方法像同一服务间调用本地方法一样。相关基础操作最好看官方文档

IDL(Interface description language)接口描述语言,是规范的一部分,是跨平台开发的基础。

Hertz

Hertz是字节内部的HTTP框架,集合了Gin、fasthttp、echo等HTTP框架的优势。

HTTP (Hyper Text Transfer Protocol)超文本传输协议的缩写,用于从web服务器传输超文本标记语言HTML到本地浏览器的传输协议。