gozero基础-1.认识gozero

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

官网:

go-zero 缩短从需求到上线的距离

什么是微服务

顾名思义,其实就是微小的服务。

最早之前的业务系统都是单体项目,像我们之前的五代博客,七代博客,都是属于单体项目

这样的单体项目有什么弊端呢?

例如后端要改一个很小的地方,那么都需要整个项目重新构建,然后停止整个项目,然后重启项目

所以企业项目发布都是在深夜就是这个原因

那么,如果是微服务呢?

可以将大系统按照功能或者产品进行服务拆分,形成一个独立的服务

以我的博客为例

我是不是就可以拆成用户服务和文章服务呢

那么我改文章相关的代码,用户服务就可以不用管他,只用关心自己的服务即可

但是本来之前大家在一起和和睦睦的,突然一分开,瞬间就有很多事情需要去完成

例如:

  1. 服务与服务间通信怎么解决?
  2. 怎么找到每一个服务的地址?

简单的说,go-zero帮助我们去编写那些重复代码

使开发者更加关注业务

什么时候该用go-zero

既然go-zero这么多功能,那么我们是不是就无脑上go-zero了?

答案并不是这样的,实际上,go-zero给我们哪些开箱即用的方法,我们都是要对他进行修改的

实际上,很多小项目,并不需要go-zero那样的代码分层

一味的使用代码分层只会让代码复杂度上升

并且,是否使用微服务以及服务的拆分,在实际的工作场景中比微服务本身更加重要

所以,如果你是要做个人项目(学习除外),其实是不建议用微服务架构的,不管你是不是用go-zero

在我看来,最适合微服务架构的项目只能是公司的大型项目,一个组负责其中一个服务的开发

需要准备的工具

  1. etcd
  2. mysql
  3. protoc (转rpc代码的)
  4. goctl

环境安装

安装goctl

go install github.com/zeromicro/go-zero/tools/goctl@latest

安装protoc

goctl env check --install --verbose --force

go get -u github.com/zeromicro/go-zero@latest

goland安装goctl插件

快速创建一个api服务

goctl api new api

然后修改一下user/api/internal/logic/apilogic.go文件

func (l *ApiLogic) Api(req *types.Request) (resp *types.Response, err error) {
  // todo: add your logic here and delete this line

  return &types.Response{Message: "枫枫"}, nil
}

快速创建一个rpc服务

goctl rpc new rpc

然后在user的api目录运行

go run api.go

访问 127.0.0.1:8888/from/me 能看到数据就说明环境安装好了

参考文档

环境搭建 go-zero微服务实战——基本环境搭建-CSDN博客

官方文档 goctl 安装 | go-zero Documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值