go micro 报错408 500

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

很长一段时间没有写博客了,最近是有些迷茫了,又有些其他的事情耽误了许多时间,所以我今天停下来想写片博文让自己冷静一下。说一下我最近正在研发的东西吧:最近我正在研发一个基于golang聊天服务,然后使用的是rpc框架go-micro,中途实在遇到很多问题,在慢慢理顺的途中我准备记录一下。咱单刀直入吧,我也不赘述什么是go-micro,什么是proto,什么是rpc了,这些东西网上还是很多的。

首先建议大家多查查github上面的解答

我也看了一些资料,在github上面还是能寻到蛛丝马迹的。建议看一下这个问题https://github.com/micro-in-cn/questions/issues/17,几位大佬分析的挺透彻,但是有个问题,这玩意要安装的东西太多,然后版本还不能错,我就一直运行不了go build -o github.com/micro/micro 所以,也没能用起来micro这个插件。

为什么会出现not found service 呢,我是直接在gomicro 的官网文档https://micro.mu/docs/cn/go-micro.html 运行的实例,直接按照官方文档来肯定是运行不了的。

我的环境:

本地环境go version go1.13.1 windows/amd64
protoc
protoc-gen-go
protoc-gen-micro
注册中心使用的是consul,因为网上现成的案例还是比较多的,所以才选择这个,其他高大上的理由我也想不太出来了。基本上的包都是翻墙出去下的,基本上还是没太大的问题

我的步骤

1.编译proto文件

我喜欢将proto文件分开放

protoc --proto_path=lib/proto --go_out=lib/microgo --micro_out=lib/microgo lib/proto/chat.proto
这里需要单独安装protoc的插件

创建后就显示为下面的目录,生成出来的文件放在了microgo文件夹下

image.png

2.服务进行注册

1.官方实例是

go run main.go  这种注册中心默认问mdns

2.我最开始使用的是这种,但是也能在consul找到对应的服务

go run main.go --registry=consul 只是将注册中心改成为consul

3.运行成功后我使用的是,只是我指定了运行端口

go run main.go --registry=consul --server_address=localhost:8888

上面大家基本应该可以看出来了,就是指定和默认注册地址问题,让服务clent报500,408错误,如果直接利用编辑器运行,没有带任何的flag的时候就会not found service 500错误。如果服务注册的时候没有指明server_address的话调用时候就会报错408

调用案例

报错500

go run client.go 这里会报500错误
image.png

正确调用

go run client.go --registry=consul  
 go run client.go --registry=consul --server_address=localhost:8888

错误原因;

主要发现在服务注册的时候,micro会自动注册到默认网段,可以看一下这个人的分析https://studygolang.com/articles/22906


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

本文来自:简书

感谢作者:创业的飞猪

查看原文:go micro 报错408 500

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

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