【发布时间】:2020-03-12 01:17:39
【问题描述】:
我有以下(简化的)设置
消费者(单线程,streamingConnection 是单例)
val streamingConnection by instance<StreamingConnection>()
streamingConnection.subscribe(Topics.OUTPUT_ORDER, OrderHandler())
streamingConnection.subscribe(Topics.OUTPUT_TRANSACTION, TransactionHandler())
Producer(单线程,streamingConnection 是单例)
- 将消息发布到 Topics.OUTPUT_ORDER
- 将消息发布到 Topics.OUTPUT_TRANSACTION
nats 流式保证,消费者以相同的顺序接收和处理消息吗?我在交易有效载荷中有订单 ID,在交易处理之前我必须知道订单 ID。
来自 nats java 库说明:
新版本最小化线程。通过依赖底层 NATS 连接中的调度程序,只有一个线程用于所有回调。
如果只有一个线程,消费者的 Topics.OUTPUT_TRANSACTION 处理将被阻塞,直到 Topics.OUTPUT_ORDER onMessage() 处理程序完成。我说的对吗?
【问题讨论】:
标签: java nats-streaming-server