请问大家 go micro 怎么禁止 api 网关访问到 rpc 的接口 ,有些只作内部调用不让api网关访问到

发布于 2022-09-11 20:05:49 字数 66 浏览 20 评论 0

请问大家 go micro 怎么禁止 api 网关访问到 有些rpc 的接口 ,有些只作内部调用不让api网关访问到

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱殇璃 2022-09-18 20:05:49

参考官方设计的一个3层的服务架构:

micro api: (localhost:8080) - http访问入口
api service: (go.micro.api.greeter) - 对外暴露的API服务
backend service: (go.micro.srv.greeter) - 内网的后台服务
完整示例可以参考:examples/greeter

# 下载示例
git clone https://github.com/micro/examples

# 运行服务
go run examples/greeter/srv/main.go

# 运行api
go run examples/greeter/api/api.go

# 启动micro api
micro api

所有server都不可访问,通过API服务聚合server,选择你要暴露的API

夜吻♂芭芘 2022-09-18 20:05:49
  • micro api 这层限制,有参数 --server_address 可以设定地址的

    • 默认就是 127.0.0.1:8080 只能本机访问
    • 改成 0.0.0.0:8080,所有都能访问
    • 改成比如 192.168..,只能内部局域网访问
  • 程序内部逻辑控制,代码里判断 ip 来源,做逻辑处理
  • 如果 go 外面有统一的网关,或者加了 web server proxy 的话,可以在这层做判断,比如加了 nginx proxy 的话
终弃我 2022-09-18 20:05:49

@dryyun 首先感谢你的回答,我现在有个疑惑, micro api是对外的,它能访问对内的一切资源;2 在程序里作判断的话是不是每个微服务都要写一个公共的方法来判断?
我现在有个想法就是自己写一个restful API网关转发,不用MICRO API作转发, 把需要进行登录验证的和权限模块在这层做,把微服务在局域网类开发裸奔。

不知道是不是我没有理解 MICRO 的用法?
留一抹残留的笑 2022-09-18 20:05:49

真的不建议使用Micro提供API,局限性不说,而且不友好。
restful API网关转发多好,这么多middleware,可以做你想做的任何事情。
rpc就只让它做它自己的事情去吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文