• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

男神鹏:golang搭配grpc,go-micro实现后台微服务操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一. 前置开发工具安装

 
注意:√ 为必须安装,* 为推荐安装
  1. √ docker:用于本地运行 docker 镜像
    • win10专业版/企业版
    • win7/win8/win10 家庭版
    • MacOS
      在进行 docker 环境安装时,直接在 wiki 链接进行点击“Docker Desktop for Mac (macOS)”,下载 Docker.dmg 文件进行安装,有的同学可能会选择通过终端命令行安装,命令基于 yum 或者 brew 安装比较麻烦,配置较多,比如直接下载安装来的直接。安装完成后,在 terminal 中查看, eg:
      1. % docker --version
      2. Docker version 19.03.8, build afacb8b
  2. √ docker-compose:用于本地一键运行微服务依赖的中间件,例如 MySQL 等
    现在 Docker 安装包,已经默认集成 docker-compose 组件,在第一步安装完成后,即可在 terminal 查看,eg:
    1. % docker-compose version
    2. docker-compose version 1.25.5, build 8a1c60f6
    3. docker-py version: 4.1.0
    4. CPython version: 3.7.5
    5. OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020
  3. mysql workbench:推荐安装,数据库客户端
    如果觉得 workbench 不直接,可以尝试 Sequel Pro
    ps:
    因为 MySQL 版本密码策略的原因,Sequel-pro 接入可能会报错,需要进入容器的 MySQL 中执行以下命令:
    1. % ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
  4. homebrew:Mac 软件包管理工具,推荐安装,安装时会先安装xcode command line tools,homebrew 安装前,要先安装 xcode command line tools,安装方法,terminal 输入:
    1. % xcode-select --install
    2. .....
    3. success!

    然后等会,稍后可从终端看到finish,再次验证是否安装完成,terminal输入:
    1. % xcode-select --install
    2. xcode-select: error: command line tools are already installed, use "Software Update" to install updates

    看到 terminal 结果,表示安装完成。
    然后即可安装homebrew,terminal命令行,输入:
    1. % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    2. ....
    3. success!

    如果安装失败,参考wiki链接,查看具体错误。
  5. iTerm2:推荐安装,iTerm2 + Oh My Zsh 打造舒适终端体验
  6. √ chrome 插件Redirector*外部合作伙伴推荐安装,用于阅读 wiki 文档时自动重定向到 tapd.tencent.com 域名
    • Redirector 插件配置:
      Redirect:http://tapd.oa.com/*
      To:http://tapd.tencent.com/$1
  7. √ git:代码版本管理工具,windows 下会有 LF 转 CRLF 问题,请确保:
    • 开发编辑器创建的文件是 Unix 行结束符,goland 默认就是
      1. % git config --global core.autocrlf false
  8. √ goland 下载 & 安装 & 激活:请选择 Version 2019.2.5 版本,自行解决激活问题
  9. 请打开设置 Enable Go Modules Integration:项目使用 go module 作为依赖管理,所以需要打开该选项
    • 请打开设置 Enable vendoring:外部合作伙伴必须打开该选项

二. 安装 & 配置 golang 环境

 

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

  1. 推荐下载安装 golang 1.13 版本;目前, golang 1.14 版本在环境设置时有不少问题,无特殊情况请勿升级!
  2. 初始化 golang 项目相关目录 & 环境变量
    1. # 创建公共目录
    2. mkdir -p ~/Documents/Project/go/src # 放置各个项⽬源代码
    3. mkdir -p ~/Documents/Project/go/bin # 插件安装⽬录(可执⾏⽂件),命令 go install 或 go get会使⽤
    4. mkdir -p ~/Documents/Project/go/pkg # 第三⽅依赖库存放路径 $GOPATH/pkg/mod
    5. # 项目相关目录的创建
    6. cd ~/Documents/Project/go/src
    7. mkdir git.code.oa.com # ⼯蜂git库地址,或者创建git.tencent.com,结合实际情况
    8. cd git.code.oa.com
    9. mkdir cloud_industry # 项⽬组(group)名称或个⼈组名称
    10. # golang 相关环境变量,如果已经设置,可忽略
    11. go env -w GOPATH=~/Documents/Project/go # 请使用绝对路径, 命令 go install 或 go get会使用该环境变量
    12. go env -w GOSUMDB=off # golang 1.13 需要额外设置
    13. go env -w GO111MODULE=on # 如果该环境变量没有为on,请设置为on,开启 go module
    14. go env -w GOPROXY=https://goproxy.io,direct # 外部的小伙伴,如果公司没有代理的话,请设置该环境变量
    15. go env -w GOPRIVATE=git.code.oa.com # 如果还有其他私有库,请自行设置
    16. # 其他推荐环境变量,可放置于~/.zshrc或~/.bash_profile,具体依赖于sh的设置
    17. export http_proxy=127.0.0.1:12639 # 如果公司提供了代理可根据实际情况设置
    18. export https_proxy=127.0.0.1:12639 # 如果公司提供了代理可根据实际情况设置
    19. export PATH=~/Documents/Project/go/bin:$PATH

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

三. 安装 protobuf 编译插件

 
  1. protoc
    • MacOS 或者 Linux 请参考文档《Installing protoc》中的说明
    • Windows:请从页面中选择对应平台的版本下载解压,并将 /{path_to_protoc}/protoc.exe 路径配置到环境变量即可
  2. protoc-gen-gogo get github.com/golang/protobuf/[email protected]
  3. protoc-gen-microgo get github.com/micro/[email protected]
  4. proto 文件编译命令,请参考示例项目 greeter 中的 README
注意:请确保以上插件的版本,否则编译出来的 proto 文件会有较大差异
注意:由于早期某些版本的 protoc-gen-micro 版本编译出来的 *.micro.go 文件,无法支持 proto 文件中 import 其它位置的 proto。所以,大家在编译 proto 库时,先安装较新的protoc-gen-micro插件
注意:请在cloud_industry 目录下更新 go get github.com/micro/[email protected]
protoc手动安装命令如下
  1. % PROTOC_ZIP=protoc-3.7.1-osx-x86_64.zip
  2. % curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
  3. % sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
  4. % sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
  5. % rm -f $PROTOC_ZIP

注意:不要通过 brew 去拉去,目前为了版本统一V3.7
  1. % brew install protobuf ##会拉去最新版本,

四. 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/[email protected]安装

五. 安装基础中间件

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

    1. ENV_MYSQL_PASSWORD=molotest123
    2. ENV_MYSQL_VOLUME=/Users/xiaojunzhou/Documents/data/mysql # 根据自身情况,创建目录
    3. ENV_SEAWEEDFS_VOLUME=/Users/xiaojunzhou/Documents/data/seaweedfs # 根据自身情况,创建目录
    4. ENV_REDIS_PASSWORD=molotest123
    5. ENV_RABBITMQ_NAME=test
    6. ENV_RABBITMQ_PASSWORD=test

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

    运行,docker 会自己下载镜像,进行启动,过一会通过 docker 命令查看启动容器:
    1. % docker ps

    通过 docker ps 命令,查看启动的基础组件,可以看到有 MySQL 组件,可以查看其容器 id,映射端口为3306.
注意:每个微服务都有自己的数据库,请使用脚本~/localenv/mysql.conf.d/create_databases.sh创建相应的数据库。
刚才运行的msyql容器,启动的为空库,需要创建相应的数据库,通过docker-compose启动后,通过查看第二步下载的localenv中的配置yml文件,可以看到,已经将脚本挂在到容器里面,yml文件内容:
  1. volumes:
  2. "${ENV_MYSQL_VOLUME}:/var/lib/mysql"
  3. "${PWD}/mysql.conf.d:/etc/mysql/mysql.conf.d/"

所以分三步:
1、第一步。进入 MySQL 容器,命令 :
  1. % docker exec -it 容器id /bin/sh

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

  1. % cd /etc/mysql/mysql.conf.d/

2.2,执行命令:

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

3、退出容器命令为:

  1. % exit

六. 确认环境搭建成功

 

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

七. FAQ

 
    1. brew 安装软件慢的问题
      默认官方的更新源都是存放在 GitHub 上的,这也是中国大陆用户访问缓慢的原因,一般来说我们会更倾向选择国内提供的更新源,在此推荐中国科大以及清华大学提供的更新源。
      1. cd `brew --repo`
      2. # 中科大
      3. git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
      4. # 或者清华大学
      5. git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go生成uuid发布时间:2022-07-10
下一篇:
go程序设计语言6-13发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap