Golang 微服务学习笔记(二)——环境搭建

Night_Witcher · · 821 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1. GO环境安装

源码安装

wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.10.3.linux-amd64.tar.gz

设置环境变量,

vim /etc/profile

然后把环境变量加入,gopath是工作目录,里面包含3个目录,分别是

  • src 存放源代码
  • pkg 存放编译好的库文件
  • bin 存放可执行文件
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/data/go

加入环境变量后要输入source /etc/profile来使环境变量生效,另外可以通过go env来查看变量是否设置生效,如下图

image.png

2. 安装 Protobuf

安装 Protobuf编译器protoc

上github下载,https://github.com/google/protobuf/releases/tag/v3.6.0
我就直接wget了,下载release版本的话就不需要./autogen.sh

wget https://github.com/google/protobuf/releases/download/v3.6.0/protobuf-all-3.6.0.tar.gz
tar -xvf protobuf-all-3.6.0.tar.gz 
./configure --prefix=/usr/local/protobuf

------------
报错:
1. no acceptable C compiler found in $PATH的报错,直接yum install gcc
2. configure: error: C++ preprocessor "/lib/cpp" fails sanity check,解决:
    yum install glibc-headers
    yum install gcc-c++
------------

make
make check
make install

装完记得加上环境变量
export PATH=$PATH:/usr/local/protoc 

安装 goprotobuf 提供的 Protobuf 插件protoc-gen-go

直接一条命令,顺便安装到$GOBIN下,就是gopath的bin目录下

go get -u github.com/golang/protobuf/protoc-gen-go

另外需要设置下环境变量,不然安装在bin目录下的也执行不了
vim /etc/profile
export PATH=$PATH:$GOPATH/bin

安装micro的扩展插件protoc-gen-micro

go get github.com/micro/protoc-gen-micro


测试一下

按官方demo写了个协议,跑一遍试试


image.png

生产命令

protoc --proto_path=$GOPATH/src:. --micro_out=. --go_out=. greeter.proto

然后就生成成功了,pb的文件是具体声明数据结构的和各个数据的操作。而micro那个文件则是框架本身再封装一层,service去调用的。


image.png

PS:

  1. 我make check的时候时候似乎有报错,但安装又是成功的
  2. 生成的文件多了3个参数,就是上篇提到的3个莫名参数。

3. etcd安装

晚点补充,然后下篇先记下protobuf的写法。再下篇就建一个完整的go-micro的简单demo,跑一遍


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Night_Witcher

查看原文:Golang 微服务学习笔记(二)——环境搭建

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

821 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传