zoukankan      html  css  js  c++  java
  • 男神鹏:golang 搭配 grpc,go-micro 实现后台微服务操作

    一. 前置开发工具安装

     
    注意:√ 为必须安装,* 为推荐安装
    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/protoc-gen-go@v1.3.2
    3. protoc-gen-microgo get github.com/micro/protoc-gen-micro@v1.0.0
    4. 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.0
    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/micro@v1.9.0安装

    五. 安装基础中间件

     
    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
  • 相关阅读:
    dos命令积累
    bt的SoundMixerl类
    给自己一个定位
    自我的反思
    计算机爱好者 VS. 程序员
    flash实现bt传输方式
    flash获取不到页面传进来的参数的一种情况
    教程:深入理解Flash的沙箱 – Application Domains
    使用URLLoader做上传出现的问题
    原创系列之:Flex数据绑定基础介绍[转]
  • 原文地址:https://www.cnblogs.com/lyp0626/p/14046448.html
Copyright © 2011-2022 走看看