1.安装micro

需要使用GO1.11以上版本

#linux 下
export GO111MODULE=on
export GOPROXY=https://goproxy.io
# windows下设置如下环境变量
setx GO111MODULE on
setx GOPROXY https://goproxy.io
# 使用如下指令安装
go get -u -v github.com/micro/micro
go get -u -v github.com/micro/go-micro

2.安装 protoc

https://github.com/protocolbuffers/protobuf/releases
//下载,不同的版本文件名称不一样,我们这里选择protoc-3.9.1-win64.zip
protoc-3.9.1-win64.zip
//解压到目标文件架,我们以e:\dev为例
e:\dev\protoc-3.9.1-win64
//添加e:\dev\protoc-3.9.1-win64\bin到环境变量path

3.安装protoc-gen-micro插件

//这个插件主要作用是通过.proto文件生成适用于go-micro的代码
go get -u -v github.com/micro/protoc-gen-micro

4.安装 consul

//下载windows版本
https://www.consul.io/downloads.html
//解压到
e:\dev\consul

添加e:\dev\consul到环境变量path
使用如下指查看是否安装成功,如下所示安装成功

>consul
Usage: consul [--version] [--help] <command> [<args>]
Available commands are:acl            Interact with Consul's ACLsagent          Runs a Consul agentcatalog        Interact with the catalogconfig         Interact with Consul's Centralized Configurationsconnect        Interact with Consul Connectdebug          Records a debugging archive for operators

5.创建微服务 hello world

//使用如下指令创建微服务
>micro new techidea8.com/microapp/hello
Creating service go.micro.srv.hello in E:\winlion\gopath\src\techidea8.com\microapp\hello.
├── main.go
├── plugin.go
├── handler
│   └── hello.go
├── subscriber
│   └── hello.go
├── proto\hello
│   └── hello.proto
├── Dockerfile
├── Makefile
├── README.md
└── go.moddownload protobuf for micro:brew install protobuf
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u github.com/micro/protoc-gen-microcompile the proto file hello.proto:cd E:\winlion\gopath\src\techidea8.com\microapp\hello
protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/hello/hello.proto

6.生成适配proto的golang代码

#切换到项目目录下
>cd /d E:\winlion\gopath\src\techidea8.com\microapp\hello# 根据proto生成文件
>protoc --proto_path=. --go_out=. --micro_out=. proto/hello/hello.proto# 启动应用
>go run main.go
2019/08/19 13:00:46 Transport [http] Listening on [::]:54689
2019/08/19 13:00:46 Broker [http] Connected to [::]:54690
2019/08/19 13:00:46 Registry [mdns] Registering node: go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26
2019/08/19 13:00:46 Subscribing go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 to topic: go.micro.srv.hello
2019/08/19 13:00:46 Subscribing go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 to topic: go.micro.srv.hello# 查看是否启动
>micro list services
go.micro.srv.hello
topic:go.micro.srv.hello

7.启动restful api接口支持支持

注意其中的--namespace参数,我们每一个微服务都属于一个命名空间,通过api暴露出来该命名空间后,满足go.micro.srv.*格式的微服务都可以访问。如go.micro.srv.hello可以通过如下格式访问

# 访问http://127.0.0.1:8080/hello/call>micro api --namespace=go.micro.srv
2019/08/19 13:07:11 Registering API Default Handler at /
2019/08/19 13:07:11 HTTP API Listening on [::]:8080
2019/08/19 13:07:11 Transport [http] Listening on [::]:54934
2019/08/19 13:07:11 Broker [http] Connected to [::]:54935
2019/08/19 13:07:11 Registry [mdns] Registering node: go.micro.api-1753185c-b8e1-49c4-aa0f-617f243a8e2a

8.测试

转载于:https://www.cnblogs.com/Paul-watermelon/p/11463128.html

微服务框架---搭建 go-micro环境相关推荐

  1. 微服务框架搭建个人总结(避坑专用)

    SpringCloud微服务框架搭建个人总结(避坑专用) 搭建springcloud微服务框架(基础) 踩坑记录 搭建框架 Eureka服务注册中心 Gateway网关 路由配置 Feign服务通信 ...

  2. springCloud 微服务框架搭建入门

    Spring cloud 实现服务注册及发现 服务注册与发现对于微服务系统来说非常重要.有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务. clou ...

  3. spring cloud、gradle、父子项目、微服务框架搭建---搭建父子级多模块项目,并注册到Eureka注册中心(二)

    总目录 https://preparedata.blog.csdn.net/article/details/120062997 一.新建一个父级gradl模块 1.在桌面或新建文件里面,右键,打开ID ...

  4. 微服务框架搭建(网关路由)

    文章目录 前言 1.创建gateway工程 2.引入pom文件 3.注册进入nacos 4.添加路由规则 5.过滤器的使用 github地址 前言 当使用微服务的时候,需要区分哪些接口对外提供服务有些 ...

  5. spring cloud、gradle、父子项目、微服务框架搭建---搭建Eureka注册中心(一)

    总目录 https://preparedata.blog.csdn.net/article/details/120062997 一.新建一个父级gradl模块 1.在桌面或新建文件里面,右键,打开ID ...

  6. 微服务框架主流技术总结--宇宙终结指南

    微服务架构:是以开发一组小型服务的方式来开发一个独立的应用系统.其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信.这些服务围绕业务功能进行构建,并能通过全自动 ...

  7. SpringCloud微服务项目搭建

    常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 我的标签 springcloud(1) 随笔分类 编程(34) 随笔档案 2018年9月 (1) 2018年8月 (6) 2018年7月 ( ...

  8. go web框架_golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

    micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go- ...

  9. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 项目完整源码下载 https://github ...

最新文章

  1. 使用JFreeChart绘制散点图
  2. 21.单链表怎么就地逆序?
  3. php 选股器,RSI切线突破选股指标(TDX)..
  4. 前端学习(2462):打包优化
  5. 计算机导论123出栈顺序,优·计算机导论复习提纲.doc
  6. java给按钮加声音_怎么在java中给按钮添加声音?
  7. java设计模式_备忘录模式
  8. 416. Partition Equal Subset Sum
  9. [QT][待解决问题]对话框ui载入卡顿问题
  10. stringbuffer java API_java API中Object,String,Stringbuffer,StringBuilder的总结
  11. yaw公式_横摆角速度(Yaw Rate)估算(上)
  12. storm是java还是python_Storm概念学习系列之什么是实时流计算?
  13. 一个可供创业公司借鉴的持续集成技术实践
  14. 无人驾驶算法学习(十一):IMU标定及Allan方差分析
  15. 阿里云ECS服务器跨账号迁移
  16. Project 2016 中文版软件快捷键学习
  17. 如何把阿里图标库的图标生成代码并应用于自己的项目
  18. 小小拷贝-strcpy洒洒水啦
  19. 腾讯云双十一活动读解
  20. 打败DOTA2顶级人类玩家,马斯克的机器人到底强在哪?

热门文章

  1. 集合之ArrayList(含JDK1.8源码分析)
  2. [Java in NetBeans] Lesson 06. Custom classes
  3. 15 并发编程-(IO模型)
  4. (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
  5. VS2015 Cordova Ionic移动开发(五)
  6. 学习笔记找到多个具有相同 ID“_header”的控件,FindControl 要求控件具有唯一的 ID....
  7. VisualStudio中的代码段
  8. HDOJ---2236 无题II[二分枚举+匈牙利]
  9. 解决FTPClient上传文件为空,显示0字节
  10. 一、创建Assetbundle 在unity3d开发的游戏中,无论模型,音频,还是图片等,我们都做成Prefab,然后打包成Assetbundle,方便我们后面的使用,来达到资源的更新。