0.目录

  1. go-micro 安装
  2. go-micro+consul服务注册、服务发现

网上大多数go-micro的都是v2 v3 本文使用最新的 v4版本

1. 启动consul

下载:https://www.consul.io/downloads

consul agent -h查看帮助

Windows启动

consul agent -server -bootstrap-expect 1 -data-dir C:\Temp\consul\data -node=n1 -bind=x.x.x.x -ui -rejoin -config-dir=C:\Temp\consul\config -client 0.0.0.0

Linux启动

consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=n1 -bind=x.x.x.x -ui -rejoin -config-dir=/etc/consul.d/ -client 0.0.0.0

其中x.x.x.x换为外网可访问的网卡地址,本地测试可以用127.0.0.1

2. 微服务程序

在上一篇文章最后创建的微服务xxxxxxx,main.go中,添加关于consul的代码
import "github.com/asim/go-micro/plugins/registry/consul/v4"

 // Register consulconsulReg:= consul.NewRegistry(func(options *registry.Options) {options.Addrs =[]string{"x.x.x.x:8500"}})srv := micro.NewService(micro.Name(service),micro.Version(version),micro.Registry(consulReg), // 注册Consul)


登录网址:x.x.x.x:8500 就能看到 XXXXXXX已经注册到consul上了

图上有2个instances 是因为我go run了2次 启了2个服务,都注册上了,非常简单

3. Gin客户端通过服务发现找到微服务

package mainimport ("context"xxxxxxx "gin_client/proto""log""net/http""go-micro.dev/v4""go-micro.dev/v4/registry""github.com/asim/go-micro/plugins/registry/consul/v4""github.com/gin-gonic/gin"
)func main() {router := gin.Default()router.GET("/", func(c *gin.Context) {// consulconsulReg := consul.NewRegistry(func(options *registry.Options) {options.Addrs = []string{"192.168.31.74:8500"}})service := micro.NewService(micro.Registry(consulReg),)mc := xxxxxxx.NewXxxxxxxService("xxxxxxx", service.Client())resp, err := mc.Call(context.TODO(), &xxxxxxx.CallRequest{Name: "xuehu96"})if err != nil {log.Println(err.Error())c.String(http.StatusBadRequest, "hello")return}c.String(http.StatusOK, resp.Msg)})router.Run(":8848")
}

使用ApiPost6测试(支持国产)

Go微服务——go-micro v4服务注册 Gin使用consul服务发现相关推荐

  1. 微服务注册中心:Consul——服务注册

    系列文章: 微服务架构:网关概念与 zuul 微服务网关:Spring Cloud Gateway -- Zuul 微服务网关:Spring Cloud Config- 配置中心 微服务网关方案:Ko ...

  2. php consul 服务注册,CentOS 安装 Consul 服务注册和发现软件

    1,关于Consul Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现. 有了很多实用的功能. 一致性协议采用 Raft 算法,来保证服务的高可用. 项目 ...

  3. 七、consul服务注册与发现

    1.Consul简介 是什么? Consul是一套开源的分布式服务发现的配置管理系统,由HashiCorp用go语言开发 提供了微服务系统中的服务治理,配置中心,控制总线等功能.这些功能中的每一个可以 ...

  4. Spring Cloud入门 -- Consul服务注册与发现(Hoxton.SR5版)

    Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现.服务隔离.服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能.Cons ...

  5. 如何将注册中心从 Consul 平滑的迁移到 Nacos ?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 近日,国外的商业软件公司HashiCorp在官网宣布:不 ...

  6. 介绍微服务框架Micro笔记

    Micro - 微服务开发套件 原文地址 目前,你应该听说过了一个新概念-微服务; 如果你不熟悉而又对微服务感兴趣,可以来这里查看更多的介绍: 本文将介绍开源的微服务开发套件-Micro; Micro ...

  7. 传统服务化(SOA)与微服务(Micro Service)的融合之道

    传统服务化(SOA)与微服务(Micro Service),并不是相互排斥的,相反,它们是融合在一块的. 国富论与IT企业组织架构 经济学鼻祖亚当斯密在其<国富论>著作中,第一章就是论分工 ...

  8. 布道微服务_09如何实现一个注册中心

    文章目录 Pre 注册中心如何存储服务信息 服务提供者注册流程 服务提供者注销流程 服务消费者查询流程 服务消费者订阅变更流程 其他典型问题 多注册中心 并行订阅服务 批量反注册服务 服务变更信息增量 ...

  9. 微服务技术栈:常见注册中心组件,对比分析

    本文源码:GitHub·点这里 || GitEE·点这里 一.注册中心简介 1.基础概念 在分布式架构的系统中注册中心这个概念就已经被提出了,最经典的就是Zookeeper中间件. 微服务架构中,注册 ...

最新文章

  1. python内置模块重要程度排名_论Python常见的内置模块
  2. Future 模式介绍
  3. 内存管理-定时器循环、内存布局、tagged pointer、weak指针、copy、自动释放池
  4. 树莓派:挂载网络存储网络硬盘
  5. JavaScript数据结构与算法——基本排序算法
  6. 多线程顺序交替打印ABCD
  7. php 文件上传mime 类型,PHP JAVA C上传文件如何准确判断文件类型-mime知识普及
  8. 网站登陆页面设计灵感,UI设计得有这个范儿
  9. 【参数辨识】永磁同步电机的参数辨识
  10. m()在php中的意思,计算器上的mc m+ m- mr是什么意思?
  11. 微信公众号装b神器生成引流系统源码
  12. 十天征服单片机百度云_51单片机 郭天祥十天学会单片机教学视频
  13. 计算机专业毕业答辩ppt优秀范例,毕业论文答辩PPT模板优秀范例课件.ppt
  14. 定位点击WebBrowser、点击Flash、偷菜外挂
  15. Springboot中自动转JSON输出
  16. 都是S赛,为什么EDG夺冠公认“含金量最高”?
  17. matlab函数之bsxfun
  18. C语言语句篇-------赋值语句
  19. 【小社交】谁是下一个陌陌?陌生人社交网络大起底!
  20. 【Javascript】求两个对象的交集、差集

热门文章

  1. 猴子管理法:自己忙死,下属闲死,如何避免帮下属“背锅”?
  2. 论文学习——基于集成LSTM-AE的时间序列异常检测方法
  3. 【虚幻5学习笔记①】连续普攻的判定和实现
  4. 如何在写CSDN博客时预览文章
  5. 【Latex】Latex公式压缩
  6. ac2100 反弹shell无法粘贴_红米AC2100刷机小白教程(加入刷机包地址)
  7. 波士顿动力机器人跳舞啦!一定要看到最后!
  8. 四驾马车:从“制造之城”到“智能制造之都”的长沙缘何飞速前进
  9. WEB UI设计网站收藏
  10. Apache ServiceComb 社区12月动态精选