如果您的版本和我不一致,也无需担心,他们基本是共通的。
GoFrame
Golang
和GoFrame
的安装方式不再赘述。这里使用的版本信息如下:
go version go1.23.4 windows/amd64
goframe v2.8.2
gRPC
gRPC
是一个由 Google
开发的远程过程调用(RPC)框架,基于HTTP/2
。它使用 Protobuf
作为默认的序列化格式。
Go
语言通过gRPC-go
插件提供gRPC
功能。执行命令安装插件:
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
gRPC测试工具
gRPC
接口开发完成后,需要一些测试工具,来检测它是否正常运行。比较流行的测试工具有Postman
、Apifox
、Apipost
等,它们大同小异,您可以根据自己的喜好选择一个。
本书统一使用json
展示测试结果,例如:
grpc 127.0.0.1:32001.account.v1.Account.UserRegister
{
"username": "oldme",
"password": "123456",
"email": "tyyn1022@gmail.com"
}
{
"id": 1
}
它们分别代表请求地址,请求参数,响应参数。
Protobuf
Protobuf
是 Google
设计的数据序列化格式,用于结构化数据的序列化和反序列化。使用 .proto
文件定义消息结构,然后通过编译器生成相应语言的代码。
根据不同的操作系统,在 Protobuf Release 下载对应的文件安装。如果是 MacOS
环境,可以使用 brew
工具安装依赖:
$ brew install grpc protoc-gen-go protoc-gen-go-grpc
检测是否安装成功。
$ protoc --version
libprotoc 26.1
etcd
etcd 是一个分布式键值存储系统,常用于分布式系统中的服务发现。安装它有多种方式,这里贴出
docker-compose.yaml
文件用作参考。
version: "3.7"
services:
etcd:
image: "bitnami/etcd:3.5"
container_name: "etcd"
restart: "always"
ports:
- 2379:2379
environment:
- TZ=Asia/Shanghai
- ALLOW_NONE_AUTHENTICATION=yes
- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
如果安装成功,在浏览器访问 http://IP:2379/version,会出现以下信息:
{"etcdserver": "3.5.17","etcdcluster": "3.5.0"}
如果您想更酷一些,安装个etcd
集群或者学习一下etcd
的基础使用,可以参考此文。
数据库
MySQL
的安装不必多说,使用其他数据库亦可。
需要注意的是,微服务架构下,每个单独的服务都应当有自己的数据库。所以,我们需要建立两个数据库,名称分别是user
和word
。
CREATE DATABASE `user`;
CREATE DATABASE `word`;