- 主页 > 生活百科 > >
go-micro是基于 Go 语言用于开发的微服务的 RPC 框架,主要功能如下:
服务发现,负载均衡 ,消息编码,请求/响应,Async Messaging,可插拔接口,最后这个功能牛p
安装步骤安装protobuf
protobuf是谷歌提供的一种高效的协议数据交换格式工具库,类似于xml,json,但是相比他们更高效,体积更小
地址:https://github.com/protocolbuffers/protobuf/releases,找到对应的版本下载,解压,并配置环境变量,我在Ubuntu下
操作
方法如下
#下载
https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protoc-3.17.3-linux-x86_64.zip
#解压 目录/usr/local
unzip protoc-3.17.3-linux-x86_64.zip
#设置环境变量 ~/.bashrc文件下
export PATH=$PATH:/usr/local/protoc/bin
#生效
source ~/.bashrc
下载相关的依赖
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
//go get github.com/micro/micro/v3/cmd/protoc-gen-micro
go get github.com/asim/go-micro/cmd/protoc-gen-micro/v3
安装v3版本的micro
go get github.com/micro/micro/v3
安装二进制文件
#linuxr操作
wget -q https://raw.githubusercontent.com/micro/micro/master/scripts/install.sh -O - | /bin/bash
基本操作帮助命令
micro -h #命令如下authManage authentication, accounts and rulescallCall a service e.g micro call greeter Say.Hello '{"name": "John"}'cliRun the interactive CLIconfigManage configuration valuesenvGet/set micro cli environmentgenGenerate a micro related dependencies e.g protobufgetGet resources from microhealthGet the service healthinitGenerate a profile for micro pluginskillKill a service: micro kill [source]loginInteractive login flow.logoutLogout.logsGet logs for a service e.g. micro logs helloworldnetworkManage the micro service networknewCreate a service templaterunRun a service: micro run [source]serverRun the micro serverserviceRun a micro serviceservicesList services in the registrystatsQuery the stats of specified service(s), e.g micro stats srv1 srv2 srv3statusGet the status of servicesstoreCommands for accessing the storestreamCreate a service stream e.g. micro stream foo Bar.Baz '{"key": "value"}'updateUpdate a service: micro update [source]userPrint the current logged in userhelp, hShows a list of commands or help for one command运行服务
micro server
登录: 用户名: admin 密码:micro
micro login
登录成功后可以查看服务
micro servers
#显示如下
api auth broker config events network proxy registry runtime server store
查看运行状态
micro status
查看日志
micro logs 服务名
创建服务
micro new 服务名
创建服务案例编写hello.proto文件
//目录路径:
/mnt/d/go/go-micro/proto/hello.proto
syntax = "proto3";
//如果不加会报错
//说明:option go_package = "path;name";
//path 表示生成的go文件的存放地址,会自动生成目录的 。
//name 表示生成的go文件所属的包名
option go_package="./;hello";
//结构体
message InfoRequest{
string username=1;
}
message InfoResponse{
string msg=2;
}
//定论接口
service Hello{
rpc Info(InfoRequest)returns (InfoResponse);
}
在proto文件所在的目录生成对应的go文件
命令如下:会在当前目录下生成hell.pb.go文件
protoc --proto_path= . --micro_out=. --go_out=. ./hello.proto
编写一 个server文件测试
//文件路径
:/mnt/d/go/go-micro/proto/server.go
//代码如下
package main
import (
"fmt"
"github.com/asim/go-micro/v3"
"context"
【go-micro的安装和使用】proto "test/go-micro/proto"
)
/*
Example usage of top level service initialisation
*/
type Greeter struct{}
func (g *Greeter) Hello(ctx context.Context, req *proto.Request, rsp *proto.Response) error {
rsp.Greeting = "Hello " + req.Name
return nil
}
func main() {
// 创建一个服务
service := micro.NewService(
micro.Name("greeter"),
micro.Address(":8081"),
micro.Version("latest"),
micro.Metadata(map[string]string{
"type": "helloworld",
"content-type":"Application/json",
推荐阅读
-
中国民航网|阿提哈德航空复航目的地将增至58个,阿联酋旅行禁令放宽
-
一点资讯外国小哥看央企③|让世界惊呼的中国高铁是这样炼成的!
-
新华网|受灾地区灾情如何?恢复重建如何开展?——有关部门介绍防汛救灾和灾后恢复重建工作
-
我总觉得身体里有一股突然的煞气,为啥,青春期现象吗
-
-
星了个星座|野心勃勃,注定能成大事的4个生肖,聪慧过人
-
会火爆文|清凉舒适又减龄,让你的造型很美很优雅,夏日选择粉色吊带裙
-
-
-
美容|穿衣风格,妆容等外在风格,是女性在每个年龄段对自我定位的体现
-
「渺渺望水」仅售三百多!Redmi系列新品来袭,8英寸触屏支持手势操作
-
韦东奕|韦东奕被传从北大离职!是出国留学还是拜师丘成桐?他离开能去哪
-
暖阳下的物语|现在过得怎么样?赵女士说了实话,那些0彩礼出嫁的女人
-
-
『搞笑38度』打包带走时老板说:鲜榨的豆浆,要不,开心一笑:早上去买热干面
-
-
直播吧|主裁看过VAR后将其直接罚下,法蒂替补登场飞踹卡莱罗
-
大考|央视热播剧《大考》大结局,我从中挖到了父母最该看透的7条真相
-
-
■AMD B550主板曝光 支持PCIe 4.0的中端主板