我在应用程序中使用了http://github.com/streadway/amqp软件包,以便处理与远程RabbitMQ服务器的连接。一切正常,一切正常,但是我有问题吗?
连接的当前名称为“ ip:port”,但是当您从同一ip中选择名称时,该名称会变得更好。
有什么办法设置我的友好名字?
答案 0 :(得分:3)
RabbitMQ 3.6.5添加了用于连接客户端报告友好名称字符串值的功能,以标识出于管理目的的连接。严格来说,这是一个标识符,并且正如客户端报告的那样,除了弱标识连接之外,不能依赖它。 release notes状态:
客户端现在可以提供人类可读的连接名称,该名称将显示在管理UI中。为了使用此功能,请在客户端属性中设置
connection_name
键。请注意,此名称不必唯一,也不能用作连接标识符,例如在HTTP API请求中。
假设您使用的是RabbitMQ的最新版本,则在使用streadway/amqp
进行连接时,可以通过进行初始连接时传递amqp.Config
的实例来设置此参数。 Properties
字段允许指定连接的自定义属性。
下面的示例程序使用环境变量AMQP_URL
中提供的AMQP URL打开连接,该URL使用作为调用的第一个命令行参数传递的连接名称进行标识。
package main
import (
"log"
"os"
"github.com/streadway/amqp"
)
func main() {
amqpUrl := os.Getenv("AMQP_URL")
cfg := amqp.Config{
Properties: amqp.Table{
"connection_name": os.Args[1],
},
}
conn, err := amqp.DialConfig(amqpUrl, cfg)
if err != nil {
log.Fatal(err)
}
defer conn.Close()
<-(chan struct{})(nil)
}
使用以下命令行启动多个实例以连接到本地RabbitMQ实例:
AMQP_URL=amqp://admin:password@localhost:5672 go run ./main.go connX
用数字代替X
的结果在RabbitMQ管理Web UI的“连接”页面中产生以下输出:
并且各个连接的详细信息页面在“客户端提供的名称”详细信息值下方显示该值: