0 前言
因为项目需要,要使用go-micro框架,将已经实现的网站功能转到微服务里面实现,所以经过了许许多多踩坑之后终于实现了初步的demo。
本文会记录实现过程和中间遇到的问题,希望能帮助到大家。
1.go-micro
go-micro各个版本之间的兼容性问题一直被诟病,前几年基本用的v2
go-micro之后分流两个分支:
一个延续了go-micro,只不过转到了其公司CEO的个人Github仓库中,访问地址:
asim/go-micro: A Go microservices framework (github.com)
一个转向了云原生方向,名字叫Micro,访问地址:
micro/micro: API first cloud platform (github.com)
不过都还是开源的,当前的许可证都是Apache 2.0,不是某些人说的不能商用了,当然无法保 证以后不会改许可证。
我们今天用最新的 go-micro 版本v4开发gRPC + Protobuf 服务的方式。不排除部 分方法兼容性调整问题
本机环境:
- Apple M1 Pro (window的环境配置可能不同 可以参加其他博客)
- go version:1.17 需要大于1.16
安装micro命令行
go install github.com/go-micro/cli/cmd/go-micro@v1.1.1
2.新建微服务:
go-micro new service hello
3.修改proto文件
需要下载proto插件,本文中就不叙述下载过程,有需要可以去参考博客。
syntax = "proto3";
package hello;
option go_package = "./proto;hello";
service Hello {
rpc Call(CallRequest) returns (CallResponse) {
}