golang 之 go-micro
在安装之前首先需要对go-micro有一定的了解
https://micro.mu/docs/cn/ go-micro中文文档
https://juejin.im/post/5cebafe6f265da1bb80c0cc7 go-micro源码
https://segmentfault.com/a/1190000007917576 prodoful语法
micro
执行下面代码会等一段时间,到在最后发现并不能安装完整,别着急,因为micro包有些是需要翻墙下载,用下面的方法一个个把缺失的安装好
go get -u github.com/micro/micro
protobuf
可以直接使用brew install protobuf 写在,也可以去git https://github.com/protocolbuffers/protobuf/releases下载最新的包下载然后编译安装即可。最后安装下面的即可。
解压之后将bin文件夹加入环境变量,或者里面的protoc.exe路径加入环境变量,这个exe文件就是我们转换protobuf的工具。
然后我们使用一些golang对于protobuf的工具,go get相应的库
go get -u -v github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u -v github.com/micro/protoc-gen-micro
consul
go-micro默认使用consul,如果你不喜欢用consul,也可以自己下载etcd或者其他安装使用,后续会介绍如何安装etcd。
直接使用命令安装或者去https://www.consul.io/downloads.html
brew install consul
下载完之后加入环境变量,启动
consul agent -dev
安装grpc和genproto
mkdir $GOPATH/src/google.golang.org
cd $GOPATH/src/google.golang.org git clone https://github.com/grpc/grpc-go.git grpc
git clone https://github.com/google/go-genproto.git genproto
安装 golang的net,crypt,text库
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x git clone https://github.com/golang/net.git
git clone https://github.com/golang/crypto.git
git clone https://github.com/golang/text.git
最后在Mac 环境下执行,没有报错大功告成。
go install github.com/micro/micro
环境变量
不管是windows, mac 还是Linux想要执行micro命令都需要配置环境变量。
cd GOPATH/src/github.com/micro/micro 执行 go build
会在GOPATH/bin文件夹下生成micro.exe文件,将GOPATH/bin文件夹路径加入环境变量后我们就可以直接运行micro命令了,如果没有在bin文件夹生成那么手动移到该文件夹。
测试
执行下面命令生成go-micro项目
micro new github.com/micro/example
注意 github.com/micro/example只是示例,要在本地测试,直接改成自己的路径即可
那么生成的项目就在GOPATH/src/hdy/micro/example
example/
Dockerfile # A template docker file
README.md # A readme with command used
handler/ # Example rpc handler
main.go # The main Go program
proto/ # Protobuf directory
subscriber/ # Example pubsub Subscriber
然后运行
protoc --proto_path=. --micro_out=. --go_out=. proto/example/example.proto
最后运行前确保etcd或者consul是开启的状态
go run main.go
即可看到完整的一个项目了。
检测
micro list services
列出所有服务
详细还请见GitHub https://github.com/micro/micro
golang 之 go-micro的更多相关文章
- Golang微服务:万精油NATS在Micro中的应用
NATS是一个Golang技术栈的MQ服务,类似NSQ,但NATS更轻量级.性能更好.不支持离线.支持同步/异步通信模型,非常好用. NATS在MICRO中有哪些应用 Transport 笔者以前开发 ...
- golang微服务框架go-micro 入门笔记2.3 micro工具之消息接收和发布
本章节阐述micro消息订阅和发布相关内容 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-mi ...
- golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web
micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go- ...
- golang微服务框架go-micro 入门笔记2.1 micro工具之micro api
micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.s ...
- Golang微服务:Micro Trace使用opentracing jaeger
trace Micro通过Wrapper实现了三种trace接口,aswxray,opencensus,opentracing,这里主要关注opentracing,opentracing已成为行业标准 ...
- Golang微服务:Micro限流、熔断
Wrapper Wrapper提供了一种包装机制,使得在执行某方法前先执行Wrapper,优点Filter的意思:因此可以在客户端和服务器做很多功能:熔断限流.Filter.Auth等. client ...
- Golang微服务:micro实践
micro 使用 工具安装 使用protoc生成代码,依赖两个插件:protoc-gen-go.protoc-gen-micro micro 工具 go get -u github.com/micro ...
- Golang微服务:Micro介绍
官方文档地址 https://micro.mu/docs/index.html Tookit API HTTP接入网关.反向代理或将HTTP转为RPC请求调用后端服务 Web 一个web应用程序,默认 ...
- golang项目:goa和micro
https://github.com/goadesign/goa http://www.cnblogs.com/zhangqingping/p/5531171.html https://github. ...
- golang micro client 报错500 {"id":"go.micro.client","code":408,"detail":"call timeout: context deadline exceeded","status":"Request Timeout"}
go micro web端连接services时,第一次访问提示500(broken pipe),排查发现客户端请求services时返回 {"id":"go.micro ...
随机推荐
- Harbor基础
harbor: Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功 ...
- 市值TOP10,人类进化及中美坐标
题记:观察人类进化,以及各国.各民族在这个进化中所起的作用.所处的位置,市值 TOP 10 的变迁,会是一个再好不过的指标! 2008年,经历了全球金融危机后,原油期货一路飙升,创出了147.27美元 ...
- linux 挂载windows ntfs 分区 -- centos 安装ntfs-3g
安装fuse 下载: wget http://nchc.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz 安装: tar ...
- 站在BERT肩膀上的NLP新秀们(PART I)
站在BERT肩膀上的NLP新秀们(PART I)
- Ubuntu 17.10安装VirtualBox 5.2.2 及相关问题解决
link:https://www.linuxidc.com/Linux/2017-11/148870.htm sudo apt update && sudo apt upgrade s ...
- 014 Mui
一:概述 1.说明 是开发出来的一套好用的代码片段 任何项目都可以使用MUI 官网:https://dev.dcloud.net.cn/mui/ 不能使用npm进行下载,需要手动从git上下载 2.下 ...
- Indellij IDEA的菜单 File Edit View等主菜单栏不小心删除,恢复的解决办法
修改以后保存,重启Idea
- Web自动化遇到shadowDOM节点操作(还没试)
近期有同学在做web自动化的时候,发现页面上有些元素,在selenium中无法通过xpath来定位,各种原因找了半天,都没找到解决方案. 最后发现元素在一个叫做shadow-root的节点下面. 如下 ...
- Elasticsearch学习之集群常见状况处理(干货)
1. 集群健康状况处理 当集群处于yellow或者red状态的时候,整体处理步骤如下: (1) 首先查看集群状态 localhost:/_cluster/health?pretty { "c ...
- maven:不再支持源选项 5。请使用 6 或更高版本。
解决办法: 在pom.xml中添加maven的配置 <maven.compiler.source>11</maven.compiler.source> <maven.co ...