Go微服务——go-micro v4服务注册 Gin使用consul服务发现
0.目录
- go-micro 安装
- 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服务发现相关推荐
- 微服务注册中心:Consul——服务注册
系列文章: 微服务架构:网关概念与 zuul 微服务网关:Spring Cloud Gateway -- Zuul 微服务网关:Spring Cloud Config- 配置中心 微服务网关方案:Ko ...
- php consul 服务注册,CentOS 安装 Consul 服务注册和发现软件
1,关于Consul Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现. 有了很多实用的功能. 一致性协议采用 Raft 算法,来保证服务的高可用. 项目 ...
- 七、consul服务注册与发现
1.Consul简介 是什么? Consul是一套开源的分布式服务发现的配置管理系统,由HashiCorp用go语言开发 提供了微服务系统中的服务治理,配置中心,控制总线等功能.这些功能中的每一个可以 ...
- Spring Cloud入门 -- Consul服务注册与发现(Hoxton.SR5版)
Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现.服务隔离.服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能.Cons ...
- 如何将注册中心从 Consul 平滑的迁移到 Nacos ?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 近日,国外的商业软件公司HashiCorp在官网宣布:不 ...
- 介绍微服务框架Micro笔记
Micro - 微服务开发套件 原文地址 目前,你应该听说过了一个新概念-微服务; 如果你不熟悉而又对微服务感兴趣,可以来这里查看更多的介绍: 本文将介绍开源的微服务开发套件-Micro; Micro ...
- 传统服务化(SOA)与微服务(Micro Service)的融合之道
传统服务化(SOA)与微服务(Micro Service),并不是相互排斥的,相反,它们是融合在一块的. 国富论与IT企业组织架构 经济学鼻祖亚当斯密在其<国富论>著作中,第一章就是论分工 ...
- 布道微服务_09如何实现一个注册中心
文章目录 Pre 注册中心如何存储服务信息 服务提供者注册流程 服务提供者注销流程 服务消费者查询流程 服务消费者订阅变更流程 其他典型问题 多注册中心 并行订阅服务 批量反注册服务 服务变更信息增量 ...
- 微服务技术栈:常见注册中心组件,对比分析
本文源码:GitHub·点这里 || GitEE·点这里 一.注册中心简介 1.基础概念 在分布式架构的系统中注册中心这个概念就已经被提出了,最经典的就是Zookeeper中间件. 微服务架构中,注册 ...
最新文章
- python内置模块重要程度排名_论Python常见的内置模块
- Future 模式介绍
- 内存管理-定时器循环、内存布局、tagged pointer、weak指针、copy、自动释放池
- 树莓派:挂载网络存储网络硬盘
- JavaScript数据结构与算法——基本排序算法
- 多线程顺序交替打印ABCD
- php 文件上传mime 类型,PHP JAVA C上传文件如何准确判断文件类型-mime知识普及
- 网站登陆页面设计灵感,UI设计得有这个范儿
- 【参数辨识】永磁同步电机的参数辨识
- m()在php中的意思,计算器上的mc m+ m- mr是什么意思?
- 微信公众号装b神器生成引流系统源码
- 十天征服单片机百度云_51单片机 郭天祥十天学会单片机教学视频
- 计算机专业毕业答辩ppt优秀范例,毕业论文答辩PPT模板优秀范例课件.ppt
- 定位点击WebBrowser、点击Flash、偷菜外挂
- Springboot中自动转JSON输出
- 都是S赛,为什么EDG夺冠公认“含金量最高”?
- matlab函数之bsxfun
- C语言语句篇-------赋值语句
- 【小社交】谁是下一个陌陌?陌生人社交网络大起底!
- 【Javascript】求两个对象的交集、差集
热门文章
- 猴子管理法:自己忙死,下属闲死,如何避免帮下属“背锅”?
- 论文学习——基于集成LSTM-AE的时间序列异常检测方法
- 【虚幻5学习笔记①】连续普攻的判定和实现
- 如何在写CSDN博客时预览文章
- 【Latex】Latex公式压缩
- ac2100 反弹shell无法粘贴_红米AC2100刷机小白教程(加入刷机包地址)
- 波士顿动力机器人跳舞啦!一定要看到最后!
- 四驾马车:从“制造之城”到“智能制造之都”的长沙缘何飞速前进
- WEB UI设计网站收藏
- Apache ServiceComb 社区12月动态精选