passive curable arguments
amqp_queue_declare_ok_t *amqp_queue_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t exclusive, amqp_boolean_t auto_delete, amqp_table_t arguments); 接口说明:声明queue
参数说明:state amqp connection channel
queue queue name passive
durable 队列是否持久化
exclusive 当前连接不在时,队列是否自动删除 aoto_delete 没有consumer时,队列是否自动删除
arguments 用于拓展参数,比如x-ha-policy用于mirrored queue
amqp_queue_bind_ok_t *amqp_queue_bind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_tab le_t arguments); 接口说明:声明binding
amqp_basic_qos_ok_t *amqp_basic_qos(amqp_connection_state_t state, amqp_channel_t channel, uint32_t prefetch_size, uint16_t prefetch_count, amqp_boolean_t global);
接口说明:qos是 quality of service,我们这里使用主要用于控制预取消息数,避免消息按条数均匀分配,需要和no_ack配合使用 参数说明:state channel
prefetch_size 以bytes为单位,0为unlimited prefetch_count 预取的消息条数 global
amqp_basic_consume_ok_t *amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, amqp_boolean_t exclusive, amqp_table_t arguments); 接口说明:开始一个queue consumer 参数说明:state channel queue
consumer_tag no_local
no_ack 是否需要确认消息后再从队列中删除消息 exclusive arguments
int amqp_basic_ack(amqp_connection_state_t state,amqp_channel_t channel,uint64_t delivery_tag,amqp_boolean_t multiple);
int amqp_basic_publish(amqp_connection_state_t state,amqp_channel_t channel,amqp_bytes_t exchange,amqp_bytes_t routing_key,amqp_boolean_t mandatory,amqp_boolean_t immediate,struct amqp_basic_properties_t_ const *properties,amqp_bytes_t body); 接口说明:发布消息 参数说明:state channel exchange
routing_key 当exchange为默认“”时,此处填写queue_name,当exchange为direct,此处为binding_key mandatory 参见参考文献2 immediate 同上
properties 更多属性,如何设置消息持久化,参见文后demo body 消息体
amqp_rpc_reply_t amqp_channel_close(amqp_connection_state_t state,amqp_channel_t channel,int code);
amqp_rpc_reply_t amqp_connection_close(amqp_connection_state_t state,int code);
int amqp_destroy_connection(amqp_connection_state_t state);