golang实现rabbitmq的几种模式
这篇文章会简单的讲一下,rabbitmq的几种模式,并用golang语言实现一下。
第一种模式:simple模式。
这是最简单的模式了。也就是由生产者将消息送到队列里,然后由消费者到消息队列里来取。在这之前,我们先定义一个RabbitMQ的结构体和我们定义的函数。
1 package RabbitMq 2 3 import ( 4 "fmt" 5 "github.com/streadway/amqp" 6 ) 7 8 //这里主要是RabbitMQ的一些信息。包括其结构体和函数。 9 10 //连接信息 11 const MQURL = "amqp://du:du@129.211.78.6:5672/dudevirtualhost" 12 13 //RabbitMQ结构体 14 type RabbitMQ struct { 15 //连接 16 conn *amqp.Connection 17 channel *amqp.Channel 18 //队列 19 QueueName string 20 //交换机名称 21 ExChange string 22 //绑定的key名称 23 Key string 24 //连接的信息,上面已经定义好了 25 MqUrl string 26 } 27 28 //创建结构体实例,参数队列名称、交换机名称和bind的key(也就是几个大写的,除去定义好的常量信息) 29 func NewRabbitMQ(queueName string, exChange string, key string) *RabbitMQ { 30 return &RabbitMQ{QueueName: queueName, ExChange: exChange, Key: key, MqUrl: MQURL} 31 } 32 33 //关闭conn和chanel的方法 34 func (r *RabbitMQ) Destory() { 35 r.channel.Close() 36 r.conn.Close() 37 } 38 39 //错误的函数处理 40 func (r *RabbitMQ) failOnErr(err error, message string) { 41 if err != nil { 42 fmt.Printf("err是:%s,小杜同学手写的信息是:%s", err, message) 43 } 44 }