rabbitmq-c AMQP_DELIVERY_NONPERSISTENT
时间: 2023-09-20 09:07:57 浏览: 94
AMQP_DELIVERY_NONPERSISTENT 表示 RabbitMQ 消息的传递模式为非持久化传递,即消息在 RabbitMQ 重启或者崩溃后不会被重新发布。相对应的,AMQP_DELIVERY_MODE_PERSISTENT 表示消息的传递模式为持久化传递,即消息即使在 RabbitMQ 重启或者崩溃后也会被重新发布。
相关问题
rabbitmq C语言 amqp_basic_ack再什么情况下使用
amqp_basic_ack函数用于确认消费者收到并处理了消息。它应该在消费者成功处理完消息后被调用,并且可以避免消息被重复消费。
在使用RabbitMQ时,当消费者从队列中获取到一条消息时,消息会被标记为“未确认状态”。如果消费者成功处理了该消息,它应该调用amqp_basic_ack函数来确认该消息已被处理。如果消费者没有调用amqp_basic_ack函数,那么该消息将一直处于“未确认状态”,RabbitMQ会认为该消息没有被处理,并将其重新发送给另一个消费者。
因此,amqp_basic_ack函数应该在消费者成功处理完消息后被调用,以确保消息被正确地处理并且不会被重复消费。
rabbitmq AMQP_DELIVERY_NONPERSISTENT 是什么
AMQP_DELIVERY_NONPERSISTENT 是 RabbitMQ 中的一个消息传递模式。在这种模式下,消息会被立即发送给消费者,但不会被持久化到磁盘上,因此如果 RabbitMQ 服务器在发送消息之后崩溃,这些消息将会丢失。这种模式适合于一些不重要的消息,例如日志记录等。相对的,AMQP_DELIVERY_MODE_PERSISTENT 是另一种消息传递模式,它会将消息持久化到磁盘上,确保即使 RabbitMQ 服务器在发送消息之后崩溃,这些消息也能够得到保留。
阅读全文