public RabbitmqProducer(MaxwellContext context) { super(context); exchangeName = context.getConfig().rabbitmqExchange; props = context.getConfig().rabbitmqMessagePersistent ? MessageProperties.MINIMAL_PERSISTENT_BASIC : null; ConnectionFactory factory = new ConnectionFactory(); factory.setHost(context.getConfig().rabbitmqHost); factory.setPort(context.getConfig().rabbitmqPort); factory.setUsername(context.getConfig().rabbitmqUser); factory.setPassword(context.getConfig().rabbitmqPass); factory.setVirtualHost(context.getConfig().rabbitmqVirtualHost); try { this.channel = factory.newConnection().createChannel(); if(context.getConfig().rabbitmqDeclareExchange) { this.channel.exchangeDeclare(exchangeName, context.getConfig().rabbitmqExchangeType, context.getConfig().rabbitMqExchangeDurable, context.getConfig().rabbitMqExchangeAutoDelete, null); } } catch (IOException | TimeoutException e) { throw new RuntimeException(e); } }
@Test public void simpleRabbitMqTest() throws IOException, TimeoutException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost(rabbitMq.getContainerIpAddress()); factory.setPort(rabbitMq.getMappedPort(RABBITMQ_PORT)); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.exchangeDeclare(RABBIQMQ_TEST_EXCHANGE, "direct", true); String queueName = channel.queueDeclare().getQueue(); channel.queueBind(queueName, RABBIQMQ_TEST_EXCHANGE, RABBITMQ_TEST_ROUTING_KEY); // Set up a consumer on the queue final boolean[] messageWasReceived = new boolean[1]; channel.basicConsume(queueName, false, new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { messageWasReceived[0] = Arrays.equals(body, RABBITMQ_TEST_MESSAGE.getBytes()); } }); // post a message channel.basicPublish(RABBIQMQ_TEST_EXCHANGE, RABBITMQ_TEST_ROUTING_KEY, null, RABBITMQ_TEST_MESSAGE.getBytes()); // check the message was received assertTrue("The message was received", Unreliables.retryUntilSuccess(5, TimeUnit.SECONDS, () -> { if (!messageWasReceived[0]) { throw new IllegalStateException("Message not received yet"); } return true; })); }
private void createExchanges() throws IOException { Channel chan = channelPool.acquire(); try { chan.exchangeDeclare(BusExchange.NO_ROUTE.toString(), BusExchange.NO_ROUTE.getType()); Map<String, Object> args = map(e("alternate-exchange", (Object) BusExchange.NO_ROUTE.toString())); chan.exchangeDeclare(BusExchange.P2P.toString(), BusExchange.P2P.getType(), true, false, args); chan.exchangeDeclare(BusExchange.BROADCAST.toString(), BusExchange.BROADCAST.getType()); } finally { channelPool.returnChannel(chan); } }
@Override public DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException { return this.delegate.exchangeDeclare(exchange, type, durable, autoDelete, internal, arguments); }
@Override public DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, Map<String, Object> arguments) throws IOException { return this.delegate.exchangeDeclare(exchange, type, durable, autoDelete, arguments); }
@Override public DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, Map<String, Object> arguments) throws IOException { return this.delegate.exchangeDeclare(exchange, type, durable, autoDelete, arguments); }
@Override public DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException { return this.delegate.exchangeDeclare(exchange, type, durable, autoDelete, internal, arguments); }
@Override public DeclareOk exchangeDeclare(String exchange, String type, boolean durable) throws IOException { return this.delegate.exchangeDeclare(exchange, type, durable); }
@Override public DeclareOk exchangeDeclare(String exchange, String type) throws IOException { return this.delegate.exchangeDeclare(exchange, type); }
@Override public DeclareOk exchangeDeclare(String exchange, String type) throws IOException { return this.delegate.exchangeDeclare(exchange, type); }
@Override public DeclareOk exchangeDeclare(String exchange, String type, boolean durable) throws IOException { return this.delegate.exchangeDeclare(exchange, type, durable); }
private String connectExchange(Properties properties) throws IOException { String exchangeName = ofNullable(EXCHANGE_NAME.readFrom(properties)).orElse(DEFAULT_EXCHANGE_NAME); boolean durableQueue = ofNullable(DURABLE_QUEUE.readFrom(properties)).map(Boolean::parseBoolean).orElse(DEFAULT_QUEUE_DURABILITY); channel.exchangeDeclare(exchangeName, TOPIC_EXCHANGE_TYPE, durableQueue); return exchangeName; }
protected String setupQueue(Channel on) throws IOException { String queueName = on.queueDeclare().getQueue(); on.exchangeDeclare("bergamot.update", "topic", true); // no bindings for the moment return queueName; }
public String setupQueue(Channel on) throws IOException { on.queueDeclare("bergamot.control.queue", true, false, false, null); on.exchangeDeclare("bergamot.control", "topic", true); on.queueBind("bergamot.control.queue", "bergamot.control", "#"); return "bergamot.control.queue"; } };
public String setupQueue(Channel on) throws IOException { on.queueDeclare("bergamot.dead_check_queue", true, false, false, null); on.exchangeDeclare("bergamot.dead_check", "fanout", true); on.queueBind("bergamot.dead_check_queue", "bergamot.dead_check", ""); return "bergamot.dead_check_queue"; } };
private void open() throws IOException, TimeoutException { connection = RabbitMQUtil.createConnection(brokerAddresses, brokerUsername, brokerPassword); if (blockedListener != null) { connection.addBlockedListener(blockedListener); } channel = connection.createChannel(); channel.exchangeDeclare(exchangeName, "direct"); log.info("[rabbit.producer] connection established."); }
protected String setupQueue(Channel on) throws IOException { // setup the queue String queueName = on.queueDeclare().getQueue(); on.exchangeDeclare("bergamot.update", "topic", true); // bind for (UpdateKey binding : initialBindings) { on.queueBind(queueName, "bergamot.update", binding.toString()); } return queueName; }
@Override public void open() throws IOException { getChannel().exchangeDeclare(exchange, "direct"); getChannel().queueDeclare(queueName, true, false, false, null); for (String routingKey : routingKeys) { getChannel().queueBind(queueName, exchange, routingKey); } getChannel().basicConsume(queueName, false, this); }
/** * The a durable topic exchange is always declared */ private void declareExchange() throws ControllerException { try { this.manager.channel().exchangeDeclare(this.collector.getExchangeName(),EXCHANGE_TYPE,true); } catch (final IOException e) { if(!FailureAnalyzer.isExchangeDeclarationRecoverable(e)) { throw new ControllerException(this.collector.getBrokerHost(),this.collector.getBrokerPort(),this.collector.getVirtualHost(),"Could not create exchange named '"+this.collector.getExchangeName()+"'",e); } } }
public void setup() throws IOException { logger.debug("setting up receiver.."); connFactory.setHost(host); connection = connFactory.newConnection(); channel = connection.createChannel(); channel.exchangeDeclare(exchange, "fanout"); queueName = channel.queueDeclare().getQueue(); channel.queueBind(queueName, exchange, ""); tracingConsumer = new TracingConsumer(channel); cTag = channel.basicConsume(queueName, true, tracingConsumer); }