基于micro开发之环境搭建篇

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

一,依赖安装

       1,强制项:

      ( 1)go-micro。  go-micro是一个框架,你可以理解它是一个库,它提供了一个平台,你可以很快的开发微服务,而且你更多的关注业务逻辑的开发。

    (2)protobuf。go-micro中消息交互的格式默认是protobuf,所以你需要安装protobuf,并且还需要安装protoc-gen-go和protoc-gen-micro这两个插件。protoc-gen-go是供protoc生成工具生成go文件的调用插件,protoc-gen-micro是供protoc-gen-go生成micro格式的go文件所需的插件。

      2,  非强制项

  (1)micro工具,它是辅助你开发微服务使用的,因为你基于go-micro开发微服务,他们之间是可以相互通信的,外面访问不到。它可以辅助调试你的程序。如果你自己开发两个程序,互相调试,并且只是想先跑跑例子看看,那么这个工具可以暂时不装。


  (2)服务发现工具。go-micro默认提供mdns方式的服务注册,如果你只是学习过程中,可以先不安装。你的程序也可以运行并且跑起来。

二,下载go包的方式

        1,gopath方式

    我喜欢的方式是把第三方的包下载好(直接去github下载或go get),放到gopath/src中,因为我的项目也在gopath/src目录中,所以直接可以使用,并且也方便去查看源码。但是这也有一个弊端,就是当第三方包层层依赖的话,你手动去做这件事会很麻烦。可能我之前用golang开发一些工具依赖都很少。所以一直这样很舒服。

        2,go mod方式

                因为go-micro环境搭建依赖很多,而且我想尽快使用起来这个框架,最后我还是采纳了go mod这种方式。不过过程中仍然遇到很多问题。稍后说明。

三,创建项目的方式

       1,原始方式

                 因为你已经把go-micro等go包下载完成,接下来你可以直接创建项目,然后把go-micro作为第三方包引入,调用api接口。创建对应微服务。

       2,简单方式

                 你可以直接用micro工具创建出一个微服务的脚手架。大体上的流程就是打开控制台。输入micro.new命令。

四,过程中遇到的问题

        1,你要选择golang的版本要低于1.15。因为1.15之后对go-micro用到的一个数据结构发生了变化,导致和go-micro不兼容。程序会报问题。我目前卸载go 1.15.然后安装了一个go 1.13

        2,go-mod处出的问题,大体上就是go-micro包基于grpc开发的。然后最新的grpcv2.27也出现了不兼容的问题。需要降级到v.v26.所以这里你需要对go-mod原理,如何运行的点好好理解一下,由于我刚开始用go-mod,解决以上问题就耗费更的时间了。后来花时间去学习了一个go-mod的运行流程。

五,我想说的话

        这篇文章不适合你对go-micro没有操作过,上来就读。这篇是我在搭建过程中,看了各种个样的文章,和搭建过程中遇到问题之后解决。包括更深入的去理解go-micro之后的总结。适合你看到五花八门的搭建方式,你一头雾水。那么这里会帮你修正搭建go-micro的认知。               


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

本文来自:简书

感谢作者:盈朔

查看原文:基于micro开发之环境搭建篇

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

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