一. 前置开发工具安装

 

注意:√ 为必须安装,* 为推荐安装

  1. √ docker:用于本地运行 docker 镜像
  • win10专业版/企业版
  • 安装前请开启Hyper-V
  • 下载安装 Docker Desktop for Windows
  • win7/win8/win10 家庭版
  • 安装前请确认CPU虚拟化功能开启
  • 下载安装 Docker Toolbox
  • MacOS
    在进行 docker 环境安装时,直接在 wiki 链接进行点击“Docker Desktop for Mac (macOS)”,下载 Docker.dmg 文件进行安装,有的同学可能会选择通过终端命令行安装,命令基于 yum 或者 brew 安装比较麻烦,配置较多,比如直接下载安装来的直接。安装完成后,在 terminal 中查看, eg:

%--versionDocker19.03.8, build afacb8b

  1. √ docker-compose:用于本地一键运行微服务依赖的中间件,例如 MySQL 等
    现在 Docker 安装包,已经默认集成 docker-compose 组件,在第一步安装完成后,即可在 terminal 查看,eg:

%-compose version-compose version 1.25.5,8a1c60f6-py version:4.1.0CPython:3.7.5OpenSSL:OpenSSL1.1.1f31Mar2020

  1. mysql workbench:推荐安装,数据库客户端
    如果觉得 workbench 不直接,可以尝试 Sequel Pro
    ps:
    因为 MySQL 版本密码策略的原因,Sequel-pro 接入可能会报错,需要进入容器的 MySQL 中执行以下命令:

%'root'@'%''password';

  1. homebrew:Mac 软件包管理工具,推荐安装,安装时会先安装xcode command line tools,homebrew 安装前,要先安装 xcode command line tools,安装方法,terminal 输入:

%-select--install.....!

  1. 然后等会,稍后可从终端看到finish,再次验证是否安装完成,terminal输入:
  1. %-select--install
  2. -select::,use"Software Update" to install updates
  3. 看到 terminal 结果,表示安装完成。
    然后即可安装homebrew,terminal命令行,输入:
  1. %/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  2. ....
  3. !
  4. 如果安装失败,参考wiki链接,查看具体错误。
  1. iTerm2:推荐安装,iTerm2 + Oh My Zsh 打造舒适终端体验
  2. √ chrome 插件Redirector:*外部合作伙伴推荐安装,用于阅读 wiki 文档时自动重定向到 tapd.tencent.com 域名
  • Redirector 插件配置:Redirect:http://tapd.oa.com/*To:http://tapd.tencent.com/$1
  1. √ git:代码版本管理工具,windows 下会有 LF 转 CRLF 问题,请确保:
  • 开发编辑器创建的文件是 Unix 行结束符,goland 默认就是

%--global.autocrlf false

  1. √ goland 下载 & 安装 & 激活:请选择 Version 2019.2.5 版本,自行解决激活问题
  2. 请打开设置 Enable Go Modules Integration:项目使用 go module 作为依赖管理,所以需要打开该选项
  • 请打开设置 Enable vendoring:外部合作伙伴必须打开该选项

二. 安装 & 配置 golang 环境

 

工业云使用 go 语言作为开发语言,请根据以下步骤进行设置:

  1. 推荐下载安装 golang 1.13 版本;目前, golang 1.14 版本在环境设置时有不少问题,无特殊情况请勿升级!
  2. 初始化 golang 项目相关目录 & 环境变量

# 创建公共目录-p ~/Documents/Project/go/src # 放置各个项⽬源代码-p ~/Documents/Project/go/bin # 插件安装⽬录(可执⾏⽂件),命令 go install 或 go get会使⽤-p ~/Documents/Project/go/pkg # 第三⽅依赖库存放路径 $GOPATH/pkg/mod# 项目相关目录的创建~/Documents/Project/go/src.code.oa.com # ⼯蜂git库地址,或者创建git.tencent.com,结合实际情况.code.oa.com# 项⽬组(group)名称或个⼈组名称# golang 相关环境变量,如果已经设置,可忽略-w GOPATH=~/Documents/Project/go # 请使用绝对路径, 命令 go install 或 go get会使用该环境变量-w GOSUMDB=off # golang 1.13 需要额外设置-w GO111MODULE=on # 如果该环境变量没有为on,请设置为on,开启 go module-w GOPROXY=https://goproxy.io,direct # 外部的小伙伴,如果公司没有代理的话,请设置该环境变量-w GOPRIVATE=git.code.oa.com # 如果还有其他私有库,请自行设置# 其他推荐环境变量,可放置于~/.zshrc或~/.bash_profile,具体依赖于sh的设置export=127.0.0.1:12639# 如果公司提供了代理可根据实际情况设置export=127.0.0.1:12639# 如果公司提供了代理可根据实际情况设置export=~/Documents/Project/go/bin:$PATH

  1. 备注:这里要注意,~/Documents/Project/go ,通过 pwd 查询绝对路径地址,再进行配置

三. 安装 protobuf 编译插件

 

protoc

  • MacOS 或者 Linux 请参考文档《Installing protoc》中的说明
  • Windows:请从页面中选择对应平台的版本下载解压,并将 /{path_to_protoc}/protoc.exe 路径配置到环境变量即可
  1. protoc-gen-go:go get github.com/golang/protobuf/protoc-gen-go@v1.3.2
  2. protoc-gen-micro:go get github.com/micro/protoc-gen-micro@v1.0.0
  3. proto 文件编译命令,请参考示例项目 greeter 中的 README

注意:请确保以上插件的版本,否则编译出来的 proto 文件会有较大差异
注意:由于早期某些版本的 protoc-gen-micro 版本编译出来的 *.micro.go 文件,无法支持 proto 文件中 import 其它位置的 proto。所以,大家在编译 proto 库时,先安装较新的protoc-gen-micro插件
注意:请在cloud_industry 目录下更新 go get github.com/micro/protoc-gen-micro@v1.0.0protoc手动安装命令如下


  1. %=protoc-3.7.1-osx-x86_64.zip
  2. %-OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
  3. %-o $PROTOC_ZIP -d /usr/local/protoc
  4. %-o $PROTOC_ZIP -d /usr/local'include/*'
  5. %-f $PROTOC_ZIP


注意:不要通过 brew 去拉去,目前为了版本统一V3.7


  1. %##会拉去最新版本,


四. go-micro

 

工业云平台使用 go-micro 作为微服务开发框架,go-micro 是一个可插拔的微服务开发框架,具体架构如下所示:

它对微服务开发所依赖的各种组件(Registry、Selector、Broker等)进行了抽象,这样我们的服务就不会依赖特定的组件,非常灵活,适合我们当前复杂的业务场景。

目前 go-micro 版本为,请勿自行升级:

  • go-micro: 1.9.0
  • go-plugins: 1.2.0
  • micro 工具:可选安装,若需要的话,请通过命令go get github.com/micro/micro@v1.9.0安装

五. 安装基础中间件

 

  1. 基础组件:mysql,redis/sentinel,rabbitmq,jaeger,seaweedfs;
  2. 下载基础组件安装包——localenv;
  3. 修改包内文件.env中的环境变量参数,可根据需要进行修改:

=molotest123=/Users/xiaojunzhou/Documents/data/mysql # 根据自身情况,创建目录=/Users/xiaojunzhou/Documents/data/seaweedfs # 根据自身情况,创建目录=molotest123=test=test

  1. 备注:.env文件根据自身电脑情况修改,保证正确性,里面参数涉及 docker 中的挂在目录,后面再进行初始化时,会有用
  1. 执行基础组件运行,进入 localenv 目录:

%&&-compose up -d

  1. 运行,docker 会自己下载镜像,进行启动,过一会通过 docker 命令查看启动容器:
  1. % docker ps
  2. 通过 docker ps 命令,查看启动的基础组件,可以看到有 MySQL 组件,可以查看其容器 id,映射端口为3306.

注意:每个微服务都有自己的数据库,请使用脚本~/localenv/mysql.conf.d/create_databases.sh创建相应的数据库。
刚才运行的msyql容器,启动的为空库,需要创建相应的数据库,通过docker-compose启动后,通过查看第二步下载的localenv中的配置yml文件,可以看到,已经将脚本挂在到容器里面,yml文件内容:


volumes:"${ENV_MYSQL_VOLUME}:/var/lib/mysql""${PWD}/mysql.conf.d:/etc/mysql/mysql.conf.d/"


所以分三步:
1、第一步。进入 MySQL 容器,命令 :

%exec-it 容器id /bin/sh

2、第二步,进入容器指定目录后,
2.1,进入挂载目录,

%/etc/mysql/mysql.conf.d/

2.2,执行命令:

%./create_databases.sh ##则会开始执行脚本

3、退出容器命令为:

%exit

六. 确认环境搭建成功

 

请下载文档《新人学习指引》中的项目实践中的项目 README 要求的步骤进行即可

七. FAQ

 

  1. brew 安装软件慢的问题
    默认官方的更新源都是存放在 GitHub 上的,这也是中国大陆用户访问缓慢的原因,一般来说我们会更倾向选择国内提供的更新源,在此推荐中国科大以及清华大学提供的更新源。

`brew --repo`# 中科大set-url origin https://mirrors.ustc.edu.cn/brew.git# 或者清华大学set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git