- 主页 > 生活百科 > >
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",
推荐阅读
-
爱时尚的乔儿@衣服不好好穿剪成“碎布”,一般人学不来,萧亚轩太“心机”
-
gdp|中国西南地区唯一的副省级城市, 一家独大、GDP超1.3万亿元
-
-
区市场监督管理局|南京栖霞市场监管部门半年成绩单出炉,发现安全隐患296条已整改272条
-
中年|8月末石家庄住户存款余额8413.91亿元,同比去年回落2%
-
西深兵法|俄罗斯名次意外,第二实至名归,日本列出世界强国的名单
-
-
求点帮助,不知道咋应对同性恋室友的骚扰了(我是正常性取向)
-
-
天择杂谈|海湾战争为何美军完胜?美国将军:因为一个苏联元帅在帮助我们
-
券商股|【超级大单】3只券商股遭主力砸盘,出逃资金超40亿元
-
-
搞笑街角|是不是该考虑收费了,大爷:我在这扬了一天树叶了
-
实真军事|日军“最怕”中国两支军队,哪两支?,二战日本承认
-
-
cba|大爆冷!CBA大黑马被吊打,胡金秋24+14成空砍,李春江怒气冲天
-
大家对《血色浪漫》这部电视剧咋看,这是我最喜欢的电视剧之一?
-
周口婴儿丢失案警方通报未提嫌疑人,到底有没有人偷娃
-
「历史智慧库」他的妻儿现状如何?国家的做法值得称赞,飞行员王伟牺牲19年后
-
[]尼康四款产品荣获2020年度影像技术新闻协会TIPA大奖