TDMQ for RabbitMQ
TDMQ for RabbitMQ® is a distributed and highly available message queue service. It supports the AMQP 0-9-1 protocol, is fully compatible with open-source RabbitMQ components and concepts, and features compute-storage separation with the underlying advantage of flexible scaling. (RabbitMQ is a trademark of Broadcom, Inc. in the United States and other countries.)

TDMQ for RabbitMQ supports the AMQP 0-9-1 standard protocol and is fully compatible with the open-source RabbitMQ community and its queue, exchange, and virtual host components, so that you can quickly migrate the metadata from RabbitMQ to Tencent Cloud at zero costs.

TDMQ for RabbitMQ supports various messaging patterns of native RabbitMQ as well as dead letter switch and standby switch, eliminating your concerns over message loss caused by message expiration or routing failure. In addition, it supports queue priority to ensure that messages are consumed by priority.

TDMQ for RabbitMQ features a persistent storage mechanism, which ensures that the metadata and message content after service restart will never get lost. It stores messages in three replicas. When a physical machine is faulty, the data can be quickly migrated to guarantee the availability of three data replicas, achieving a 99.95% service availability.

TDMQ for RabbitMQ supports more queues and has higher scalability than open-source RabbitMQ. Its underlying system can automatically scale clusters based on the business scale in a way imperceptible to users.

TDMQ for RabbitMQ provides access APIs and open-source SDKs for all programming languages on all versions. It offers the entire set of OPS services of the Tencent Cloud platform and monitors alarms in real time to help you quickly discover and solve problems and guarantee the service availability.
Flash sales are a very common scenario in e-commerce systems, and there are many solutions available. Using TDMQ for RabbitMQ is considered one of the effective methods.
For complex inventory deduction scenarios (such as those involving product information or other systems), it is recommended to perform inventory deduction using the database. An asynchronous method can be used to handle high concurrency in inventory updates.
1.When a user places an order, the order is not generated immediately; instead, all orders are sequentially placed into a queue.
2.The order module obtains orders from the queue based on its own processing speed and performs the operation of "inventory deduction after orders are placed".
3.After the order is generated successfully, the user can proceed with payment.
This method is specifically designed for the scenario of flash sales, ensuring fairness based on the "first-come, first-served" principle. All users have the opportunity to place an order, and then wait for order processing and order generation (orders fail to be generated if the inventory is insufficient).

When messages are consumed, if the importance of them varies, and higher-priority messages are desired to be consumed preferentially, the priority queue feature of TDMQ for RabbitMQ can be used in this case to ensure that messages with higher priority are consumed first.
See the following business scenario for reference:
For example, there is a scenario of an order payment reminder in the system. If customers place the order in the e-commerce system, the system will send it to the customer timely. If payment is not made within a specified time period, an SMS reminder will be sent to the customer. However, the processing method of the speed differentiates between major and minor customers. The payment reminders for major customers need to be processed with higher priority, while reminders for minor customers have lower priority.
The priority queue feature of TDMQ for RabbitMQ perfectly supports this scenario, preventing high-priority messages from being delayed. For example, orders from major customers are assigned a relatively higher priority to ensure timely processing, while others use the default priority.

In the actual business system, there are requirements for sending delayed messages. If customers implement the delay logic themselves, ensuring reliability and delay accuracy can be challenging. Using a message middleware, such as TDMQ for RabbitMQ, can handle such requirements effectively. Scenarios for using delayed messages include:

Many business systems need to broadcast information to downstream systems. Using RPC results in heavy coupling and significant stress on the upstream business system. At this point, TDMQ for RabbitMQ's Fanout Exchange can handle such demands. Use cases include:

With the popularity of Microservices Architecture, services are split into smaller parts, and data is sent in the form of messages to different queues using carefully designed distribution strategies. TDMQ for RabbitMQ's flexible message routing capabilities can fully distribute messages to target queues. Use cases include:

Click "Contact Us" to enjoy personalized presales consultation and aftersales service.