我正在使用Rabbitmq作为消息系统开发微服务架构中的应用程序。
微服务之间的调用是异步http请求,每个服务都在特定队列上订阅
我的问题是,调用是无状态的,如何保证消息通信的并行化不是通过rabbitmq队列中的路由键,而是通过http调用本身,也就是说,对于n个调用,每个服务必须能够只侦听所需的消息。
很抱歉,我想进一步解释:
场景是,我们处于微服务体系结构中,由于巨大的数据响应,呼叫服务将在侦听器rabbitmq队列中接收应答。
因此,让我们想象两个调用同时进行,两个查询都开始将数据加载到同一个队列中,调用服务正在等待消息并添加接收到的消息,但不能区分调用方1和调用方2的数据。
是否有更好的侦听器实现
我不确定我是否完全理解了这个问题,但根据描述,我可以提出以下建议:
如果每个服务都挂接到特定的侦听器,并且您不想将路由键关联到队列侦听器集成,那么您可以尝试使用头参数吗?[您可以使用QueueBuilder.withArguments API来设置Queue应该监听的特定Header值]需要有一种机制,通过这种机制,交换将绑定到特定队列,从而绑定到监听器服务。
出版者-
示例: >>>服务B(获取消息) 服务A>推送消息>>>服务B(不应接收消息,已复制) >>>服务C(获取消息) 我认为它是“路由”和“工作队列”的组合,我需要什么? 但我怎样才能正确地做到这一点呢?我使用node.js或C#(如果您有示例的话)。
我是Java新手,希望接受包含股市详细信息的字符串。如果现有字符串包含脚本的购买订单,请按给定价格查找卖家。如果没有匹配项可用,则将新订单添加到现有采购订单队列。 这些需要尽可能快地完成,或者最好并行完成,以便给定的应用程序可以在最短的时间内处理尽可能多的订单。
为了方便给大家演示,rabbitmq也使用的docker版本部署在kubernetes集群上,真实环境请使用独立的rabbitmq服务器 如果您还没有初始化持久化存储的,请在这里install/storage.html配置好存储类再安装rabbitMQ服务。 安装 $ kubectl apply -f install/kubernetes/rabbitmq/statefulset.yaml $ k
Java异常处理分为错误、已检查异常和未检查异常。这个问题是关于例外的。 正常的Java异常处理是扩展检查异常的异常类,并通过考虑异常层次结构来处理您需要的异常。 例如: 但是我看到了主要的Spring书籍,甚至在Spring boot中提到的Internet教程中,以及在微服务的上下文中,总是从RuntimeException类扩展而来,即使使用@ControllerAdvice。 这显然违反了
基本 Nest 微服务是一种使用与HTTP不同的传输层的应用程序。 安装 首先,我们需要安装所需的软件包: $ npm i --save @nestjs/microservices 概述 通常,Nest支持一系列内置的传输器。它们基于 请求-响应 范式,整个通信逻辑隐藏在抽象层之后。多亏了这一点,您可以轻松地在传输器之间切换,而无需更改任何代码行。我们不支持具有基于日志的持久性的流平台,例如 Ka
我有一堆在唯一端口中运行的Spring启动微服务。我们如何在生产中处理这些微服务? 在生产中,我们只需要DNS,如何处理DNS映射。 例如:示例微服务-1(端口:8001) 示例微服务-2(端口:8002) 示例微服务-3(端口:8003) 示例微服务-4(端口:8004) 示例微服务-5(端口:8005) 我想要下面的东西, myprod。com/example-microservice-1 m
我是测微计新手。有人能告诉我如何在spring boot中集中管理微服务指标吗? 在哪里可以获得influxdb中所有注册的服务信息、矩阵和存储的度量?
我有一个简单的设置,有一个Eureka服务注册服务器、一个用于公共API的服务和一个使用RESTTemplate从公共API调用的服务。Eureka告诉我服务已成功注册,但当我调用服务时 我得到以下异常 谢谢