Class RabbitMQClient

java.lang.Object
org.apache.nutch.rabbitmq.RabbitMQClient

public class RabbitMQClient extends Object
Client for RabbitMQ
  • Constructor Details

    • RabbitMQClient

      public RabbitMQClient(String serverHost, int serverPort, String serverVirtualHost, String serverUsername, String serverPassword) throws IOException
      Builds a new instance of RabbitMQClient
      Parameters:
      serverHost - The server host.
      serverPort - The server port.
      serverVirtualHost - The virtual host into the RabbitMQ server.
      serverUsername - The username to access the server.
      serverPassword - The password to access the server.
      Throws:
      IOException - It is thrown if there is some issue during the connection creation.
    • RabbitMQClient

      public RabbitMQClient(String uri) throws IOException
      Builds a new instance of RabbitMQClient
      Parameters:
      uri - The connection parameters in the form amqp://userName:password@hostName:portNumber/virtualHost
      Throws:
      IOException - It is thrown if there is some issue during the connection creation.
  • Method Details

    • openChannel

      public void openChannel() throws IOException
      Opens a new channel into the opened connection.
      Throws:
      IOException - It is thrown if there is some issue during the channel creation.
    • bind

      public void bind(String exchangeName, String exchangeOptions, String queueName, String queueOptions, String bindingKey, String bindingArguments) throws IOException
      Creates a relationship between an exchange and a queue.
      Parameters:
      exchangeName - The exchange's name.
      exchangeOptions - Options used when the exchange is created.

      It must have the form type={type},durable={durable} where:

      • {type} is fanout, direct, headers or topic
      • {durable} is true or false
      queueName - The queue's name.
      queueOptions - Options used when the queue is created.

      It must have the form durable={type},exclusive={durable},auto-delete={durable},arguments={durable} where:

      • durable is true or false
      • exclusive is true or false
      • auto-delete is true or false
      • arguments must have the for {key1:value1;key2:value2}
      bindingKey - The routine key to use for the binding.
      bindingArguments - This parameter is only used when the exchange's type is headers. In other cases is ignored.

      It must have the form key1=value1,key2=value2

      Throws:
      IOException - If there is some issue creating the relationship.
    • publish

      public void publish(String exchangeName, String routingKey, RabbitMQMessage message) throws IOException
      Publishes a new message over an exchange.
      Parameters:
      exchangeName - The exchange's name where the message will be published.
      routingKey - The routing key used to route the message in the exchange.
      message - The message itself.
      Throws:
      IOException - If there is some issue publishing the message.
    • close

      public void close() throws IOException
      Closes the channel and the connection with the server.
      Throws:
      IOException - If there is some issue trying to close the channel or connection.