1. 程式人生 > >RabbitMQ exchange

RabbitMQ exchange

1.建立或者宣告一個exchange

/**
 * amqp_exchange_declare
 *
 * @param [in] connect連線 amqp_new_connection獲取
 * @param [in] channel the channel to do the RPC on,程式自己設定一個通道號,一個連線可以多個通道號。
 * @param [in] exchange 指定exchange名稱 eg:amqp_cstring_bytes("exchange_cat")
 * @param [in] type 指定exchange型別,amqp_cstring_bytes("direct"
) * "fanout" 廣播的方式,傳送到該exchange的所有佇列上。 * "direct" 通過路由鍵傳送到指定的佇列上。 * "topic" 通過匹配路由鍵的方式獲取,使用萬用字元*,# * @param [in] passive 檢測exchange是否存在,設為true,若佇列存在則命令成功返回(呼叫其他引數不會影響exchange屬性),若不存在不會建立exchange,返回錯誤。設為false,如果exchange不存在則建立exchange,呼叫成功返回。如果exchange已經存在,並且匹配現在exchange的話則成功返回,如果不匹配則exchange宣告失敗。 * @param
[in] durable 佇列是否持久化 * @param [in] auto_delete 連線斷開的時候,exchange是否自動刪除 * @param [in] internal internal * @param [in] arguments arguments * @returns amqp_exchange_declare_ok_t */ AMQP_PUBLIC_FUNCTION amqp_exchange_declare_ok_t * AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, amqp_table_t arguments);

呼叫函式之後,使用amqp_get_rpc_reply(conn)來獲取呼叫結果。

amqp_exchange_declare(conn, 1, amqp_cstring_bytes("exchange_cat"), amqp_cstring_bytes("direct"), 0, 1, 0,0, amqp_empty_table);

die_on_amqp_error(amqp_get_rpc_reply(conn), "Declaring exchange");