关于golang:rabbitMq-交换机介绍-golang-版本

rabbitMq有四种类型的交换机fanout、direct、topic、headers

一 不必交换机的队列

生产者示例 producer.go

package main

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

func main() {
    conn, err := amqp.Dial("amqp://user:password@host:ip/vhost")
    if err != nil {
        log.Fatalf(" %s", err)
    }
    defer conn.Close()

    ch, err := conn.Channel()
    if err != nil {
        log.Fatalf("%s", err)
    }
    defer ch.Close()

    body := "Hello World! " + time.Now().Format("2006-01-02 15:04:05")
    fmt.Println(body)

    ch.QueueDeclare(
        "j_test_delay", // name
        false,          // durable
        false,          // delete when unused
        false,          // exclusive
        false,          // no-wait
        nil,            // arguments
    )

    err = ch.Publish(
        "",             // exchange 这里为空则不抉择 exchange
        "j_test_delay", // routing key
        false,          // mandatory
        false,          // immediate
        amqp.Publishing{
            ContentType: "text/plain",
            Body:        []byte(body),
        })

}

消费者 consumer.go

package main

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

func main() {
    conn, err := amqp.Dial("amqp://user:password@host:ip/vhost")
    if err != nil {
        log.Fatalf(" %s", err)
    }
    defer conn.Close()

    ch, err := conn.Channel()
    if err != nil {
        log.Fatalf("%s", err)
    }
    defer ch.Close()

    body := "Hello World! " + time.Now().Format("2006-01-02 15:04:05")
    fmt.Println(body)

    ch.QueueDeclare(
        "j_test_delay", // name
        false,          // durable
        false,          // delete when unused
        false,          // exclusive
        false,          // no-wait
        nil,            // arguments
    )

    err = ch.Publish(
        "",             // exchange 这里为空则不抉择 exchange
        "j_test_delay", // routing key
        false,          // mandatory
        false,          // immediate
        amqp.Publishing{
            ContentType: "text/plain",
            Body:        []byte(body),
        })

}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理