- https://www.rabbitmq.com/documentation.html
- https://www.rabbitmq.com/tutorials/amqp-concepts.html
- https://www.rabbitmq.com/tutorials/tutorial-four-python.html
- Consumes messages from RabbitMQ queues.
- Supports direct, topic, fanout, and headers exchanges.
- Authenticates using RabbitMQ username and password.
- Supports custom virtual hosts.
- Publishes incoming messages to Condense Kafka topics.
- The connector establishes a connection to the RabbitMQ broker.
- It connects to the configured Virtual Host.
- The configured queue is consumed using the specified exchange and routing key.
- Incoming messages are read in real time.
- Messages are published to the configured Condense topic.
Field-by-Field Explanation
1. Title
- Description: User-defined name for the connector.
- Example:
RabbitMQ_Device_Stream_Input
2. Host
- Description: Hostname or IP address of the RabbitMQ broker.
- Example:
rabbitmq.internal.company.com
3. Port
- Description: RabbitMQ listener port.
- Default:
5672 - TLS Default:
5671 - Example:
5672
4. Username
- Description: RabbitMQ username.
- Example:
stream_ingest_user
5. Password
- Description: Password associated with the configured username.
- Example:
********
6. Exchange Name
- Description: RabbitMQ exchange from which messages are routed.
- Example:
device_data_exchange
7. Virtual Host
- Description: RabbitMQ virtual host.
- Default:
/ - Example:
/iot_streaming
8. Queue
- Description: Queue from which messages are consumed.
- Example:
sensor_ingest_queue
9. Routing Key
- Description: Routing key used for exchange-to-queue binding.
- Example:
sensor.india.temperature
10. Topic (Output)
- Description: Condense Kafka topic where RabbitMQ messages are published.
- Example:
temperature_events
- Verify the hostname, port, username, and password.
- Ensure the broker is reachable from Condense.
- Confirm TLS settings match the RabbitMQ server configuration.
- Verify the configured credentials.
- Ensure the user has access to the specified Virtual Host.
- Verify the queue exists.
- Confirm the queue is bound to the exchange.
- Verify the routing key matches the exchange binding.
- Ensure the queue is created before deploying the connector.
- Direct exchanges route using exact routing-key matches.
- Topic exchanges support wildcard routing.
- Fanout exchanges broadcast messages to all bound queues.
- Headers exchanges use message headers instead of routing keys.
- Use durable queues for production workloads.
- Configure message TTL and dead-letter exchanges when appropriate.
- Monitor queue depth to identify backlogs.
- Use TLS connections where possible.
- Avoid using the default Virtual Host in production.
- Rotate credentials regularly.
- Apply least-privilege permissions for RabbitMQ users.
- Use descriptive connector and topic names.
- Prefer JSON or Avro message formats.
- Use durable queues and persistent messages.
- Monitor connector health and RabbitMQ metrics.
- Secure RabbitMQ credentials and rotate them periodically.