我已经包含了我的代码,该代码是使用以下参考文献构建的:
几秒钟的暂停后运行代码时,我在行上出现错误
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。 我在这里想念东西吗?