如何使用 Go 优雅地解析 URI?
How to parse URI gracefully using Go?
这是我在 etcd 中的 kafka 连接信息:
kafka://user:passwd@10.10.172.222:9092?mechanism=PLAIN&protocol=SASL_PLAINTEXT
当我从 etcd 获取信息字符串时,我想获取用户名 user
、密码 passwd
和主机 10.10.172.222:9092
.
现在如何使用 Golang 优雅地解析 Kafka 连接信息?
使用net/url
库
kafkaUrl := "kafka://user@10.10.172.222:9092?mechanism=PLAIN&protocol=SASL_PLAINTEXT"
u, err := url.Parse(kafkaUrl)
if err != nil {
// handle error
}
user := u.User.Username()
pass, isPassSet := u.User.Password()
host := u.Host // host or host:port
主机名和端口分开
hostname := u.Hostname()
port := u.Port()
这是我在 etcd 中的 kafka 连接信息:
kafka://user:passwd@10.10.172.222:9092?mechanism=PLAIN&protocol=SASL_PLAINTEXT
当我从 etcd 获取信息字符串时,我想获取用户名 user
、密码 passwd
和主机 10.10.172.222:9092
.
现在如何使用 Golang 优雅地解析 Kafka 连接信息?
使用net/url
库
kafkaUrl := "kafka://user@10.10.172.222:9092?mechanism=PLAIN&protocol=SASL_PLAINTEXT"
u, err := url.Parse(kafkaUrl)
if err != nil {
// handle error
}
user := u.User.Username()
pass, isPassSet := u.User.Password()
host := u.Host // host or host:port
主机名和端口分开
hostname := u.Hostname()
port := u.Port()