我正在研究Microservices,实际上我想知道一些事情。
我完全同意使用(back)服务发现使请求能够基于REST的微服务的事实。我需要知道发出请求的服务(或者至少是服务器集群的前端)在哪里。因此,在这种情况下,能够发现一个ip:port是有意义的。
但是我想知道在处理AMQP时使用服务注册中心/发现的目的是什么(只基于HTTP,没有HTTP可能的调用)?
我的意思是,使用AMQP就像“我需要它,我希望有人能回答我”,我不需要知道是谁把我送回了回复。
那么,在基于AMQP的微服务中使用服务注册/发现的目的是什么呢?
谢谢你的帮忙
发布于 2015-11-27 14:10:04
AMQP (实际上是任何MOM )为进程提供了一种通信方式,而不必考虑实际IP地址、通信安全性、路由等问题。这并不一定意味着任何进程都可以信任,甚至拥有与其通信的进程的任何信息。
消息队列解决了进程的一半问题:如何到达远程服务。但他们并没有解决另一半的问题:哪个服务对我来说是正确的。换句话说,哪种服务:
这两个问题几乎是线性独立的。为了解决第二类问题,网格计算中有资源代理。还有资源分配,以确保上面的最后一项得到正确的管理。
还有一些替代的策略,例如多播、使用服务的意图以及等待报价的答复。例如,在这种情况下,你可能会进行反向拍卖。
简而言之,经验法则是,如果您对将要使用的服务(硬编码或某些配置文件)没有先验知识,则您的代理将不得不协商,这包括动态服务发现。
https://stackoverflow.com/questions/33952306
复制相似问题