messagebroker

拆分 REST API 和消息代理使用者

我正在设计的架构应该由以下组件组成:REST API(spring boot 或 quarkus)、消息代理(activemq 或 rabbitmq)和数据库(mongodb 或 postgresql)。此架构应处理以下提到的与审计相关的场景: 调用 REST API 来存储审计跟踪:在这种情况下,REST API 将接收到的消息传输到消息代理,作为 REST API 的一部分的消费者使用消息... »

在消息代理(ServiceBus)中混合命令和事件

我有 Order 和 OrderProcessor 服务。 订单提交后,必须由 OrderProcessor 处理。处理后,OrderProcessor 应该将响应发送到 Order 服务,并带有 Order 状态,例如失败/成功。我想使用消息代理(Azure ServiceBus)进行异步处理和解耦我的服务。 在命令和事件方面,我看到以下结构: ProcessOrder 命令应该在 Serv... »

使用 HAL_UART_Transmit 发送 null

我在 Keil IDE 中为 STM32103F 使用 HAL 驱动程序。我需要将代码传输到通过串口连接到我的 STM32 的 ESP。此代码使 ESP 将命令 (CMD2) 中的任何内容发布到我正在使用的代理,但是当命令 (CMD2) 包含 0x00 (NULL) 时会出现问题,因此 ESP 不会向代理发布任何内容。这是我正在使用的代码: char Appendix[8] = "\",0,0\r... »

具有 maxWaitTime 的 receiveMessages 方法未按预期工作

我正在使用 azure 服务总线并使用 ServiceBusReceiverClient.receiveMessages(int maxMessages, Duration maxWaitTime) 方法从服务总线接收消息,我的用例是接收一批特定时间内的消息。但这并没有按预期工作它没有等待持续时间 maxWaitTime,它会在收到一条消息后立即开始处理消息。 下面是代码sn-p: Servic... »

当使用像 apache kafka 这样的消息代理时

在我们公司的上一个项目中: 客户提出身份验证等请求, 然后我们应用程序的第一层获取客户端请求并在 Kafka 上生成消息, 我们的核心服务消费消息,然后向银行服务发出休息请求,得到响应后,我们在 Kafka 上生成响应消息 然后我们应用程序的第一层将消息传递给客户端。 是真正的 Kafka 用例还是移除第一层和 Kafka 更好, 并在客户端和核心之间使用休息服务。 谢谢... »

集群架构(node + ecs)避免重复的队列消息

我正在尝试设计一个健壮的架构,但是在解决消息传递问题时遇到了麻烦。 让我试着解释一下 API 将集群在 ECS 上接收大量请求。 Worker 也会聚集在一起订阅相同的频道。 (这就是问题所在,如果我们只与一名工人一起工作,那不会有任何问题) 如何处理多个工作人员避免重复消息? 什么是一个很好的简单方法,让许多工人忙着。 谢谢。 ... »

RabbitMQ:忽略 prefetch() 会导致数据并发吗?

场景: 我有一个生产者和消费者,只有一个传输消息的队列。消费者将根据已消费的消息更新 DB 上的值。不应将任何操作并行发送到数据库。所以,我们不应该做任何导致数据库数据并发的事情。我使用prefetch(1) 一次接收一条消息。删除prefetch() 是否会导致多个操作并行发送到数据库? 消费者是否在没有prefetch() 的单线程处理器中处理消息? ... »

在 Spring Boot 中通过 REST api 处理提交的耗时任务的最佳方法

我有一个需要使用网络爬虫系统的 Spring Boot Web 项目。我的爬虫服务没有任何停机时间,每个爬虫请求可能需要很长时间处理。我想通过 REST 接口获取用于抓取的 URL。我的 Web 应用程序中的用户向 Web 应用程序提交 URL 列表,我想向他/她显示:您的请求已提交。完成此请求的抓取后,我想以 Web 形式更新请求状态。实现此方案的最佳方法是什么?... »

微服务中服务之间的同步通信是反模式吗?

我对微服务有些陌生。我目前正在使用微服务开发应用程序,并且我同时使用同步和异步通信方法。最近看到几篇文章说不应该使用同步(http)通信,而应该只使用异步(消息代理)。 所以我的第一个问题是标题“微服务中服务之间的同步通信是反模式吗?” 如果是,那么我该如何克服这种情况: 假设我有两个服务,分别称为“用户”和“消息”,用户 A 想要向用户 B 发送消息。所以当用户 A 发送消息时,我想检查用户 A... »

Google Pub/Sub 是否有队列或主题?

我熟悉 JMS 和 Google Pub/Sub 新手。 在 JMS 中有 2 个选项: 队列:只有一个消费者可以接受消息。 主题:每个消费者都接受来自主题的每条消息 我相信 Google Pub/Sub 应该支持这样的东西,但是快速谷歌搜索并没有帮助我回答这个问题。 请指出相应的文档部分。... »

使用 Net::Stomp::Client 发送二进制消息

我需要使用 perl 库 Net::Stomp::Client 向 Message Broker 发送二进制消息。但每当我使用send 或send_with_receipt 方法发送消息时,消息都会作为文本消息接收。 我在服务器中使用ActiveMQ,当我调用consume 时,收到的消息是TextMessage 类型。我需要它的类型为BytesMessage。 更新: 我在link 中看到设... »

直接从 Angular 客户端订阅 Azure 事件网格主题

我正在开发一个需要响应来自第三方 WebHook 的事件的应用程序。我选择 Azure Event Grid 作为我选择的事件代理,Angular 用于前端,Asp.Net Core 用于后端。 在我当前的解决方案中,我使用 HTTP 触发的 Azure 函数从 WebHook 发布到 Azure 事件网格。此函数将第三方事件格式化为正确的 Azure 事件网格格式(以相关事件用户为主题,事件类... »

微服务是否可以结合 REST 和消息传递?

我们拥有基于微服务架构的应用程序的第一个版本。我们使用 REST 进行外部和内部通信。 现在我们要从 CP(CAP 定理)* 切换到 AP,并使用消息总线进行微服务之间的通信。 有很多关于如何基于Kafka、RabbitMQ等创建事件总线的资料。 但是我找不到 REST 和消息传递组合的任何最佳实践。 例如,您创建了一个汽车服务,您需要添加不同的汽车组件。为此,将 REST 与 POST 请求一... »

使用 Go Micro 从一个经纪人消费并生产到另一个经纪人

我正在尝试使用 Go Micro 框架编写一个微服务,该框架将从 RabbitMQ 代理消费并写入另一个。 Go Micro 有一个 RabbitMQ 插件,但似乎如果想要使用 Go Micro 抽象(例如micro.RegisterSubscriber),就必须依赖库内部的许多全局状态。我最终使用micro.RegisterSubscriber 设置了一个消费者,然后手动创建一个单独的代理,小... »

go

RabbitMq:具有直接绑定的消费者的动态数量

我有以下场景: 一个生产者服务 消费者服务的动态数量 消息包含特定产品的任务,因此一旦消费者 x 处理产品 y 的消息。将来 x 应该处理产品 y 的所有消息。理想情况下,生产者服务应该将产品 x 的所有消息发送到只有消费者 x 读取的队列中。 为了平均分配工作量,应该有一种方法,一旦需要管理新产品,下一个可用的消费者就会接受它。(我假设所有消费者都在读取的队列) 我的做法: 交换器在... »

当 rabbitmq-server 崩溃时,rabbitmq 服务器会恢复标记为持久队列的消息吗?

我正在浏览Rabbitmq官方网站给出的AMQP的documentation。 它说 队列持久性 持久队列被持久化到磁盘,因此可以存活 经纪人重新启动。不持久的队列称为瞬态队列。不是 所有场景和用例都要求队列是持久的。 队列的持久性不会使消息路由到该队列 队列持久。如果经纪人被撤下然后又恢复, 持久队列将在代理启动期间重新声明,但是,仅 持久性消息将被恢复。 ... »

JMSReplyTo,JMS 代理的物理位置

我对 JMSReplyTo 标头的性质感到困惑。它包含javax.jms.Destination 类型的对象,通常是由消息的发起者创建的临时队列的逻辑句柄。这是一个临时队列创建和设置JMSReplyTo标头的实验示例。 @Component("jmsbean") public static class JmsBean { @Autowired @Qualifier("jmscf... »

REST API 和消息传递

我有一个系统,它公开了一个带有一组丰富的 CRUD 端点的 REST API 来管理不同的资源。 REST API 也被使用 Ajax 执行调用的前端应用程序使用。 我想让其中一些调用异步并增加可靠性。 显而易见的选择似乎是消息代理(ActiveMQ、RabbitMQ 等)。 以前从未使用过消息代理,我想知道它们是否可以“放在”REST API 之前而无需重写它们。 我不想只通过消息系统... »

Azure 服务总线主题订阅者接收订单

我正在使用 azure 服务总线主题作为我的解决方案的消息代理。根据我对每个订阅的理解,Azure 消息总线会保留一个虚拟队列,因此在接收端消息的顺序不应受到干扰。 但实际上它有点不同,在我的场景中 大约每两秒输入一次,(时间戳正确我已经验证过了) 如果我断开接收器一段时间,消息会开始在 Azure 上针对订阅排队。 那如果我再次连接receiver,接收代码接收消息很快,但顺序没有保持? ... »

c#