微服务、amqp 和服务注册/发现

2024-05-13

我正在研究微服务架构,实际上我想知道一些事情。

我非常同意使用(返回)服务发现来在基于 REST 的微服务上发出请求。我需要知道发出请求的服务(或至少是服务器集群的前端)在哪里。因此在这种情况下能够发现 ip:port 是有意义的。

但我想知道在处理 AMQP 时使用服务注册/发现的目的是什么(仅基于,没有 HTTP 可能的调用)?

我的意思是,使用 AMQP 就像“我需要它,并且我希望有人回答我”,我不必知道谁是向我发回响应的服务器。

那么使用基于 AMQP 的微服务的服务注册/发现的目的是什么?

感谢您的帮助


AMQP(实际上是任何 MOM)为进程提供了一种通信方式,而无需考虑实际的 IP 地址、通信安全、路由等问题。这并不一定意味着任何进程都可以信任或者甚至拥有有关与之通信的进程的任何信息。

消息队列确实解决了一半的过程:如何到达远程服务。但他们没有解决另一半问题:哪种服务适合我。换句话说,哪个服务:

  • 有我需要的资源
  • 值得信赖(托管在可靠的服务器上,具有令人满意的服务实施,位于当地法律与您的要求兼容的国家等)
  • 收取您想要支付的费用(尽管人们很少讨论微服务的成本)
  • 在处理您的服务所需的整个时间窗口内都会存在——请记住,服务器变得越来越不稳定。有些服务器实际上是可以持续几分钟的容器。

这两个问题几乎是线性无关的。为了解决第二类问题,网格计算中需要资源代理。还有资源分配,以确保上面的最后一项得到正确管理。

有一些替代策略,例如多播使用服务的意图并等待报价回复。例如,在这种情况下,您可能会进行反向拍卖。

简而言之,经验法则是,如果您没有关于要使用哪个服务的先验知识(硬编码或在某些配置文件中),您的代理将必须进行协商,其中包括动态服务发现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微服务、amqp 和服务注册/发现 的相关文章

  • 除了 Erlang 之外,还有哪些系统是基于“绿色流程”的?

    我正在阅读这个信息页面绿线 维基百科 http en wikipedia org wiki Green thread我想知道 除了 Erlang 之外 还有哪些编程系统依赖于 绿色进程 Edit 绿线 绿色流程 基于绿色流程 Erlang
  • 泽西岛宁静服务通信(IncompleteClassChangeError)

    我在 JDK 1 6 http 服务器上创建了一个基于 jersey 1 12 的 Restful 服务外观 当我在 Eclipse 中启动应用程序时 一切正常 我可以毫无问题地与外观进行通信 但是当我使用启动脚本通过控制台启动应用程序时
  • 使用 C++ REST SDK 的 Http_client post 请求(卡萨布兰卡)

    我正在尝试使用 C REST SDK Casablanca 库执行 POST HTTP 请求 但我没有成功 我也找不到任何最近 工作片段 有谁能够帮助我 通过以下代码 我获得了运行时网络 json json exception说 不是字符串
  • React + Redux 和 REST API?

    我在 Node 中构建了一个简单的 CRUD 应用程序 并已在 Express 中完成了其余 API 的创建 我现在正在寻求添加前端功能 并希望使用 React Redux 作为学习练习 然而 似乎所有围绕此的教程都直接使用 Redux 访
  • REST API 响应中的校验和

    发送带有响应内容的校验和是个好主意吗 如果是这样 计算校验和的最常见方法是什么 Example HTTP 1 1 200 OK Date Thu 30 Jun 2011 21 32 20 GMT Server Apache Connecti
  • Spring boot - 嵌入式 Tomcat - 连接器定制器 - 无法添加 parseBodyMethods 属性

    最初的问题是当我使用 DELETE 方法发送http请求时 正文部分无法发送到服务器 经过谷歌搜索后 我发现本文 https stackoverflow com questions 41205062 requestbody not acce
  • Nodejs 上使用 DNS 进行 Consul 服务发现

    TL DR 大家好 我试图从用 Express 编写的 NodeJS 前端调用 NodeJS 后端微服务 通过Consul https www consul io DNS接口 https www consul io intro gettin
  • 无法在 Office365 REST Api 中检索附件的“ContentId”属性

    我正在尝试检索 Office365 Rest api 中的附件 由于我想避免下载整个附件 因此我使用 select 子句来避免下载 ContentBytes 属性中的内容 select ContentId ContentType Id Is
  • Spring boot 404错误自定义错误响应ReST

    我正在使用 Spring boot 来托管 REST API 即使浏览器正在访问 URL 以及自定义数据结构 我也希望始终发送 JSON 响应 而不是使用标准错误响应 我可以使用 ControllerAdvice 和 ExceptionHa
  • JavaFX 中的 MVC 模式与场景生成器

    我是 JavaFX 新手 根据我当前的设置 正在努力创建合适的 MVC 架构 我使用 Scene Builder 单击了一个 UI 并指定了一个 Controller 类 Startup public class Portal extend
  • 在flutter中使用REST api将列表数据发送到cloud firestore时出错

    我无法在 flutter 中使用 REST api 将字符串列表发送到云 firestore here is my code Future
  • Extjs Restful Store,批量发送请求?

    我创建了一个带有商店配置的网格组件 如下所示 Create the store config store new Ext data Store restful true autoSave false batch true writer ne
  • 禁用或限制 /o/applications(django rest 框架、oauth2)

    我目前正在使用 Django Rest 框架编写 REST API 并使用 oauth2 进行身份验证 使用 django oauth toolkit 我对他们俩都很满意 他们做的正是我想要的 然而 我有一个担忧 我正在将我的应用程序传递到
  • 泽西岛的全局异常处理

    有没有办法在泽西岛进行全局异常处理 我希望有一种方法可以将其放置在实际调用资源的位置 而不是让单个资源具有 try catch 块 然后调用某种方法来清理所有要发送回客户端的异常 这可能吗 如果是这样 怎么办 而不是 在哪里sanitize
  • Alamofire 仅在 GET 请求上出现请求错误

    我正在努力将我的项目从 AFNetworking 转移到 Alamofire 真的很喜欢这个项目 POST 请求工作得很好 但是 我在尝试发出 GET 请求时收到此错误 这是一些示例代码 class func listCloudCrednt
  • AMQP延迟传递并防止重复消息

    我有一个会偶尔生成消息的系统 我只想每 5 分钟提交零条或一条消息 如果没有生成消息 队列消费者将不会处理任何内容 如果 5 分钟内生成一百条相同的消息 我只希望从队列中使用其中一条 我正在使用AMQP RabbitMQ 有没有办法在rab
  • FOSUserBundle & REST Api 调用:如何使用自定义 FormType?

    我在我的 Symfony2 网站上使用 FOSUserBundle 现在我正在开发一个 API 以允许通过 REST API 调用进行注册 我已经覆盖了 FOSUserBundle 的 RegistrationController ApiR
  • ASP.NET Web Api 的事件发布者

    我已经开始使用微服务 我需要创建一个事件发布机制 我计划使用 Amazon SQS 这个想法很简单 我将事件存储在与聚合相同的事务中的数据库中 如果用户更改他的电子邮件 事件UserChangedEmail将被存储在数据库中 我还有事件处理
  • 如何将 yii2 Restful api 中两个表的关系数据显示为 json 格式

    我遇到了将两个表中的数据显示为 JSON 格式并在 yii2 Restful api 上工作的问题 这是我的结构数据库 TABLE volunteer volunteer id int 11 NOT NULL auto increment
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务

随机推荐