go-zero相关概念

云原生相关概念介绍

以go-zero的框架图来学习各个层面的概念:

1

数据库与redis:

redis是常用的缓存中间件,是一个高性能的 key-value 数据库,下面那些数据库的数据是存放在硬盘上的,而redis是缓存数据库,数据存在内存上。

集群:

将几台不同的服务器集中在一起,实现同一业务

service端:

首先是RPC和MQ的概念

MQ就是消息队列,有解耦,异步,削峰,限流的功能

解耦:比如有ABC组件,BC需要A组件产生的某些数据,如果直接在A的代码里把这些数据发给BC,那以后BC不需要的话又得删了。如果引入消息中间件,A将这些信息发送到消息队列中,需要的组件自己去订阅,就不会出现这种频繁更改的情况。

异步:还是ABC,如果让A去发数据,那如果需要这个数据的程序多了,那A发送数据所耗时间就会增多,如果A是主要业务,就会很慢,将数据发给消息中间件,让其他要的组件自己去取,可以提高处理速度。

削峰/限流:如果某个时间的请求量大于组件能处理的量,可以放到消息队列,处理完了再拿,这样不至于让系统崩溃。

RPC就类似远程的系统调用,RPC协议的主要目的是做到不同服务间调用方法像同一服务间调用本地方法一样

API端:

一个API对应一个RPC,就是把一个业务封装成一个API,然后供客户端调用

具体的使用等之后写代码的时候再详细研究,现在要做的就是先把整个框架理清楚,得再研究研究dismap的代码。