中间插件

amqp:一种信息中间件协议,RMQ是amqp协议的一个具体实现。RMQ使用Erlang语言实现的有很好的并发能力
生产者:负责生产消息
消费者:接收消息
交换机类型:fanout,direct,topic,header四种类型

相关函数

func (ch *Channel) ExchangeDeclare(name,kind string, durable,autoDelete, internal,noWait bool,args Table)error
name:交换器的名称
kind:表示交换器的类型
durable:是否持久化,true表示是
autoDelete:是否自动删除,true表示是
internal:是否为内部,true表示是
noWait:是否非阻塞,true表示是
arges:写nil
func (ch *Channel) QueueBind(name, key, exchange string, noWait bool, args Table) error
name:队列名称
key:要绑定的键。
exchange:交换器名称
nowait:是否非阻塞,true表示是
arges:写nil
func (ch *Channel) Publish(exchange, key string, mandatory, immediate bool, msg Publishing) error
exchange:交换机名称
key:路由键
mandatory,immediate写false
msg:要发送的信息
func (ch *Channel) Get(queue string, autoAck bool) (msg Delivery, ok bool, err error)
queue:队列名称
autoAck:是否开启自动回复
func (ch *Channel) Consume(queue, consumer string, autoAck, exclusive, noLocal, noWait bool, args Table) (<-chan Delivery, error)
queue:队列名称。
consumer:消费者标签,用于区分不同的消费者。
autoAck:是否自动回复ACK,true为是,
exclusive:设置是否排他,排他表示当前队列只能给一个消费者使用。
noLocal:如果为true,表示生产者和消费者不能是同一个connect。
nowait:是否非阻塞,true表示是
args:直接写nil,
注意下返回值:返回一个<- chan Delivery类型,遍历返回值,有消息则往下走, 没有则阻塞。
*func (ch Channel) Close() error
func (c Connection) Close() error*

Publishing结构体内容

1.jpg

代码使用

2.jpg

3.jpg

4.jpg

5.jpg

Last modification:November 11th, 2019 at 01:29 pm
如果觉得我的文章对你有用,请随意赞赏