Merge pull request #828 from micro/net-lookup
Use dns resolver on peer nodes
This commit is contained in:
		| @@ -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) | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user