NATS.io使用队列组支持此功能:
具有相同队列名称的所有订阅将形成一个队列组。使用排队语义,每条消息将仅传递给每个队列组的一个订阅者。您可以拥有任意数量的队列组。普通订阅者将继续按预期工作。
使用队列组连接您的服务(示例是 node.js):
https://github.com/nats-io/node-nats#queue-groups
nats.subscribe('foo', {'queue':'job.workers'}, function() {
received += 1;
});
然后客户端将使用库提供的请求方法:
https://github.com/nats-io/node-nats#basic-usage
// Request for single response with timeout.
nats.requestOne('help', null, {}, 1000, function(response) {
// `NATS` is the library.
if(response.code && response.code === NATS.REQ_TIMEOUT) {
console.log('Request for help timed out.');
return;
}
console.log('Got a response for help: ' + response);
});