6种工作模式-Simple模式(上)

未匹配的标注

Simple模式

最简单常用的工作模式
6种工作模式-Simple模式
简单模式下生产,传递到rabbitmq,再去消费。

代码实现

package RabbitMQ

import (
    "fmt"
    "github.com/streadway/amqp"
    "log"
)

//连接信息    amqp 账号 密码  host port  virtualhost
const MQURL = "amqp://imoocuser:imoocuser@127.0.0.1:5672/imooc"

//rabbitMQ结构体
type RabbitMQ struct {
    conn      *amqp.Connection
    channel   *amqp.Channel
    //队列名称
    QueueName string
    //交换机名称
    Exchange  string
    //bind Key 名称
    Key string
    //连接信息
    Mqurl     string
}

//创建结构体实例
func NewRabbitMQ(queueName string,exchange string ,key string) *RabbitMQ {
    rabbitmq := &RabbitMQ{QueueName:queueName,Exchange:exchange,Key:key,Mqurl:MQURL}
    var err error
    //获取connection
    rabbitmq.conn, err = amqp.Dial(rabbitmq.Mqurl)
    rabbitmq.failOnErr(err, "failed to connect rabb"+
        "itmq!")
    //获取channel
    rabbitmq.channel, err = rabbitmq.conn.Channel()
    rabbitmq.failOnErr(err, "failed to open a channel")
    return rabbitmq
}

//断开channel 和 connection
func (r *RabbitMQ) Destory() {
    r.channel.Close()
    r.conn.Close()
}
//错误处理函数
func (r *RabbitMQ) failOnErr(err error, message string) {
    if err != nil {
        log.Fatalf("%s:%s", message, err)
        panic(fmt.Sprintf("%s:%s", message, err))
    }
}

//创建简单模式下RabbitMQ实例
func NewRabbitMQSimple(queueName string) *RabbitMQ {
    //创建RabbitMQ实例    
    return NewRabbitMQ(queueName,"","")
}


本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~