[转]Go-micro 服务端、客户端简单示例
原文:https://www.jianshu.com/p/21fbd8a34f25
---------------
介绍micro
Micro is a microservice toolkit. Its purpose is to simplify distributed systems development.github地址
Go Micro is a pluggable RPC framework for microservices. It is part of the Micro toolkit. github地址
使用go-micro简易搭建一个服务端
- 安装并运行consul,consul是一个服务发现软件。micro依赖于服务发现机制
安装:
Consul is the default registry/discovery for go-micro apps. It's however pluggable.https://www.consul.io/intro/getting-started/install.html
运行:
consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul
-
下载我的示例rep
gomicrotest
注意:有一些go的依赖需要git下来,然后需要需要安装protobuf,具体使用方法google -
启动 micro web
micro 自带了一个控制台 ,可以查看所有服务和接口
http://localhost:8082/
micro web
- 启动server
进入目录 server/test
go run main.go
启动成功后 在micro web http://localhost:8082/query 能选择服务的接口 mymicro -- TestUser.GetUser
直接点击 execute 可以看到 输出 证明服务正常
- 启动client
进入目录 client
go run main.go
可以看到 输出内容 证明client连接正常
- postman 测试
可以在 micro web页面 打开检查 然后在network下面拿到 刚刚的rpc 连接 然后 copy as curl
如下:
curl 'http://localhost:8082/rpc' -H 'Pragma: no-cache' -H 'Origin: http://localhost:8082' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36' -H 'Content-type: application/json' -H 'Accept: */*' -H 'Cache-Control: no-cache' -H 'Referer: http://localhost:8082/query' -H 'Connection: keep-alive' --data-binary '{"service":"mymicro","method":"TestUser.GetUser","request":{}}' --compressed
postman 下 用post方法 设置下面参数进行访问
地址:http://localhost:8082/rpc
headers:Content-type: application/json
body:{"service":"mymicro","method":"TestUser.GetUser","request":{}}
作者:cowkeys
链接:https://www.jianshu.com/p/21fbd8a34f25
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2017-09-13 【转】php ob_start()、ob_end_flush和ob_end_clean()多级缓冲
2016-09-13 angularJS 系列(三)- 自定义 Service