JRuby にコードがあります。
class Receiver
def initialize(channel_id)
@channel_id = channel_id
factory = ConnectionFactory.new
factory.setHost("localhost")
connection = factory.newConnection
@channel = connection.createChannel
@channel.exchangeDeclare(exchange_name, "direct");
@channel.queueDeclare(queue_name, true, false, false, nil)
@channel.queueBind(queue_name, exchange_name, routing_key)
@consumer = QueueingConsumer.new(@channel);
@channel.basicConsume(queue_name, true, @consumer);
end
def receive
String.from_java_bytes @consumer.nextDelivery.getBody
end
private
def queue_name
@channel_id
end
def exchange_name
@channel_id
end
def routing_key
@channel_id
end
end
このコードは、私のアーキテクチャでメッセージを受け取る責任があります。しかし、私がieを持っているとき。同じ channel_id (基本的に交換名とルート キー) を持つ の2 つのインスタンスはReceiver
、この交換にメッセージを送信すると、1 つのメッセージが 1 つの受信者に送信され、別の受信者に送信されます。なぜ、私は間違っているのですか?