【发布时间】:2018-03-11 00:02:45
【问题描述】:
我对构建微服务很感兴趣,但是当我拥有单个微服务的多个实例时,我对服务发现应该如何工作感到有些困惑。
假设我有一个从图像中读取文本的“OCR”应用。 将其部署为 1 个实例很容易,但是,如果我想要 50 个实例呢?
我可以运行 docker swarm 来启动这 50 个实例,但是我如何向其中的任何一个发送请求,即我不想必须知道特定实例的确切容器名称,我不在乎我得到哪个,只要它是健康的,只需将我的请求发送到任何“OCR”容器即可。
我如何做到这一点?
我一直在研究 Consul,它看起来很有希望。 我特别喜欢 HTTP api,(虽然我有点不确定如何检索我感兴趣的服务的 url。我需要在 每个 请求之前执行它以确保我指的是一个健康的实例?)。
如果我想使用 consul,与 docker swarm 相关的步骤是什么?是不是只需要在容器启动的时候在consul中注册服务,如果失败会自动注销对吧?)。
在那之后,我所有的容器只需要知道 consul 在哪里(而且我想我可以在它前面放置一个负载均衡器,以防我想将 consul 本身扩展到一堆实例?)
如果我完全走错了方向,请告诉我。
如果有人也能推荐任何关于这个主题的文章或书籍,我将不胜感激。
谢谢。
【问题讨论】:
标签: docker microservices consul