mirror of
https://github.com/go-micro/go-micro.git
synced 2024-12-24 10:07:04 +02:00
Use dns resolver on peer nodes
This commit is contained in:
parent
d043ca15c1
commit
94adeebed4
@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/micro/go-micro/client"
|
"github.com/micro/go-micro/client"
|
||||||
rtr "github.com/micro/go-micro/client/selector/router"
|
rtr "github.com/micro/go-micro/client/selector/router"
|
||||||
pbNet "github.com/micro/go-micro/network/proto"
|
pbNet "github.com/micro/go-micro/network/proto"
|
||||||
|
"github.com/micro/go-micro/network/resolver/dns"
|
||||||
"github.com/micro/go-micro/proxy"
|
"github.com/micro/go-micro/proxy"
|
||||||
"github.com/micro/go-micro/router"
|
"github.com/micro/go-micro/router"
|
||||||
pbRtr "github.com/micro/go-micro/router/proto"
|
pbRtr "github.com/micro/go-micro/router/proto"
|
||||||
@ -73,7 +74,6 @@ func newNetwork(opts ...Option) Network {
|
|||||||
// init tunnel address to the network bind address
|
// init tunnel address to the network bind address
|
||||||
options.Tunnel.Init(
|
options.Tunnel.Init(
|
||||||
tunnel.Address(options.Address),
|
tunnel.Address(options.Address),
|
||||||
tunnel.Nodes(options.Peers...),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// init router Id to the network id
|
// init router Id to the network id
|
||||||
@ -174,10 +174,22 @@ func (n *network) resolveNodes() ([]string, error) {
|
|||||||
nodeMap[record.Address] = true
|
nodeMap[record.Address] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// use the dns resolver to expand peers
|
||||||
|
dns := &dns.Resolver{}
|
||||||
|
|
||||||
// append seed nodes if we have them
|
// append seed nodes if we have them
|
||||||
for _, node := range n.options.Peers {
|
for _, node := range n.options.Peers {
|
||||||
if _, ok := nodeMap[node]; !ok {
|
// resolve anything that looks like a host name
|
||||||
nodes = append(nodes, node)
|
records, err := dns.Resolve(node)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// add to the node map
|
||||||
|
for _, record := range records {
|
||||||
|
if _, ok := nodeMap[record.Address]; !ok {
|
||||||
|
nodes = append(nodes, record.Address)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user