Почему при попытке подключиться к RabbitMQ я получаю тайм-аут ввода-вывода? - PullRequest
0 голосов
/ 01 апреля 2020

Я включил свой код, который был создан с использованием следующих ссылок:

Когда я запускаю код после нескольких секунд паузы, я получаю сообщение об ошибке в строке

conn, err := amqp.Dial(result) 

, в котором говорится «время ожидания ввода-вывода»

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. Я что-то здесь упустил?

...