尝试连接RabbitMQ时为什么会出现I / O超时?

时间:2020-04-01 12:36:46

标签: go rabbitmq yaml amqp

我已经包含了我的代码,该代码是使用以下参考文献构建的:

几秒钟的暂停后运行代码时,我在行上出现错误

conn, err := amqp.Dial(result) 

其中指出“ i / o超时”

package main

import (
    "fmt"
    "github.com/streadway/amqp"
    "gopkg.in/yaml.v2"
    "io/ioutil"
    "log"
)

type Yaml  struct {
    Host string
    Port string
    Password string
    Username string
}

func failOnError(err error, msg string) {
    if err != nil {
        log.Fatalf("%s: %s", msg, err)
    }
}

func main(){
    c := Yaml{}
    yamlFile, err := ioutil.ReadFile("conf.yaml")
    if err != nil {
        log.Printf("yamlFile.Get err   #%v ", err)
    }
    err = yaml.Unmarshal(yamlFile, &c)

    result := fmt.Sprintf("%s%s%s%s%s%s%s", "amqp://", c.Username, ":", c.Password, "@", c.Host,"/")
    conn, err := amqp.Dial(result)
    failOnError(err, "Failed to connect to RabbitMQ")
    defer conn.Close()
    ch, err := conn.Channel()
    failOnError(err, "Failed to open a channel")
    defer ch.Close()
}

我的Yaml文件的结构为:

host: "...."
port: 0000
password: "...."
username: "...."

我在yaml文件中有连接参数,可以看到它们已正确解组到Yaml结构中。我离开了端口,导致端口默认为5672。 我在这里想念东西吗?

0 个答案:

没有答案
相关问题