rabbitmq

1. c接口

1.1 创建conn - amqp_new_connection()

1.2 从conn中新建一个socket - amqp_tcp_socket_new(conn)

1.3 打开这个socket - amqp_socket_open(socket, hostname, port)

1.4 然后登陆 - amqp_login(conn, ....)

1.5 打开一个channel - amqp_channel_open(conn, 1)

** 上面5步在python接口中只是一个函数,而且从打开channel步骤开始,每步都必须手动 amqp_get_rpc_relpy(conn, ...)

1.6 向rabbitmq声明一个queue - amqp_queue_declare(conn, ...)

1.6.1 作为生产者

1.6.1.1 使用conn(打开了的channel)向rabbitmq服务器发布消息 - amqp_publish(conn, ...)

1.6.2 作为消费者

1.6.2.1 绑定需要消费的队列 - amqp_queue_bind(conn, ...)

1.6.2.2 告知rabbitmq服务器消费 - amqp_basic_consume(conn, ...)

1.6.2.3 阻塞等等消息 - amqp_consume_message(conn, &envelope, ...)

1.6.2.4 读出消息 - amqp_read_message(conn, ..., &message, ...)

** 上面步骤在python接口完全支持异步回调

 

2. 队列地址,包括 routing_key(queue), exchange。

bind绑定的时候要指明 exchange 以及 queue 两个名字。

publish发布消息的时候同样要指明 exchange 以及 queue 两个名字。消息发到 exchange,再由exchange 根据自己的类型转发到对应的队列。消费者绑定到其中的队列进行消费。

declare声明队列时,如果声明 exchange 同时要指定它的类型。如 订阅发布模式对应就是 fanout。

 

3. rabbitmq充当broker的角色,并提供服务。zmq只提供简单的broker (zmq_proxy),但重点不在broker服务上,你可以利用zmq去构建自己应用需求对应模式的broker。zmq还支持inproc, ipc,生产-消息者之间直接互连。

posted on 2017-09-14 19:09  bbqz007  阅读(578)  评论(0编辑  收藏  举报