add advertising option
This commit is contained in:
parent
ec1601e2b3
commit
2041591033
@ -55,6 +55,11 @@ var (
|
|||||||
Value: ":0",
|
Value: ":0",
|
||||||
Usage: "Bind address for the server. 127.0.0.1:8080",
|
Usage: "Bind address for the server. 127.0.0.1:8080",
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "server_advertise",
|
||||||
|
EnvVar: "MICRO_SERVER_ADVERTISE",
|
||||||
|
Usage: "Used instead of the server_address when registering with discovery. 127.0.0.1:8080",
|
||||||
|
},
|
||||||
cli.StringSliceFlag{
|
cli.StringSliceFlag{
|
||||||
Name: "server_metadata",
|
Name: "server_metadata",
|
||||||
EnvVar: "MICRO_SERVER_METADATA",
|
EnvVar: "MICRO_SERVER_METADATA",
|
||||||
@ -186,6 +191,7 @@ func Setup(c *cli.Context) error {
|
|||||||
server.Version(c.String("server_version")),
|
server.Version(c.String("server_version")),
|
||||||
server.Id(c.String("server_id")),
|
server.Id(c.String("server_id")),
|
||||||
server.Address(c.String("server_address")),
|
server.Address(c.String("server_address")),
|
||||||
|
server.Advertise(c.String("server_advertise")),
|
||||||
server.Metadata(metadata),
|
server.Metadata(metadata),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ type options struct {
|
|||||||
metadata map[string]string
|
metadata map[string]string
|
||||||
name string
|
name string
|
||||||
address string
|
address string
|
||||||
|
advertise string
|
||||||
id string
|
id string
|
||||||
version string
|
version string
|
||||||
}
|
}
|
||||||
@ -71,6 +72,10 @@ func (o options) Address() string {
|
|||||||
return o.address
|
return o.address
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o options) Advertise() string {
|
||||||
|
return o.advertise
|
||||||
|
}
|
||||||
|
|
||||||
func (o options) Metadata() map[string]string {
|
func (o options) Metadata() map[string]string {
|
||||||
return o.metadata
|
return o.metadata
|
||||||
}
|
}
|
||||||
@ -99,6 +104,12 @@ func Address(a string) Option {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Advertise(a string) Option {
|
||||||
|
return func(o *options) {
|
||||||
|
o.advertise = a
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func Broker(b broker.Broker) Option {
|
func Broker(b broker.Broker) Option {
|
||||||
return func(o *options) {
|
return func(o *options) {
|
||||||
o.broker = b
|
o.broker = b
|
||||||
|
@ -114,10 +114,19 @@ func (s *rpcServer) Subscribe(sb Subscriber) error {
|
|||||||
func (s *rpcServer) Register() error {
|
func (s *rpcServer) Register() error {
|
||||||
// parse address for host, port
|
// parse address for host, port
|
||||||
config := s.Config()
|
config := s.Config()
|
||||||
var host string
|
var advt, host string
|
||||||
var port int
|
var port int
|
||||||
|
|
||||||
parts := strings.Split(config.Address(), ":")
|
// check the advertise address first
|
||||||
|
// if it exists then use it, otherwise
|
||||||
|
// use the address
|
||||||
|
if len(config.Advertise()) > 0 {
|
||||||
|
advt = config.Advertise()
|
||||||
|
} else {
|
||||||
|
advt = config.Address()
|
||||||
|
}
|
||||||
|
|
||||||
|
parts := strings.Split(advt, ":")
|
||||||
if len(parts) > 1 {
|
if len(parts) > 1 {
|
||||||
host = strings.Join(parts[:len(parts)-1], ":")
|
host = strings.Join(parts[:len(parts)-1], ":")
|
||||||
port, _ = strconv.Atoi(parts[len(parts)-1])
|
port, _ = strconv.Atoi(parts[len(parts)-1])
|
||||||
@ -177,9 +186,19 @@ func (s *rpcServer) Register() error {
|
|||||||
|
|
||||||
func (s *rpcServer) Deregister() error {
|
func (s *rpcServer) Deregister() error {
|
||||||
config := s.Config()
|
config := s.Config()
|
||||||
var host string
|
var advt, host string
|
||||||
var port int
|
var port int
|
||||||
parts := strings.Split(config.Address(), ":")
|
|
||||||
|
// check the advertise address first
|
||||||
|
// if it exists then use it, otherwise
|
||||||
|
// use the address
|
||||||
|
if len(config.Advertise()) > 0 {
|
||||||
|
advt = config.Advertise()
|
||||||
|
} else {
|
||||||
|
advt = config.Address()
|
||||||
|
}
|
||||||
|
|
||||||
|
parts := strings.Split(advt, ":")
|
||||||
if len(parts) > 1 {
|
if len(parts) > 1 {
|
||||||
host = strings.Join(parts[:len(parts)-1], ":")
|
host = strings.Join(parts[:len(parts)-1], ":")
|
||||||
port, _ = strconv.Atoi(parts[len(parts)-1])
|
port, _ = strconv.Atoi(parts[len(parts)-1])
|
||||||
|
Loading…
Reference in New Issue
Block a user