func WithRegisterTTL(t time.Duration) Option {
	return func(o *Options) {
		o.Server.Init(server.RegisterTTL(t))
		o.Client.Init(client.RegisterTTL(t))
	}
}
WithRegisterTTL the service with a TTL
package micro
import (
	"context"
	"time"
	"github.com/gmsec/micro/client"
	"github.com/gmsec/micro/registry"
	"github.com/gmsec/micro/server"
)
type Options struct {
	Client   client.Client
	Server   server.Server
	Registry *registry.Registry
	Context context.Context
}
func newOptions(opts ...Option) Options {
	opt := Options{
		Client: client.NewClient(),
		Server: server.NewServer(),
		Context: context.Background(),
	}
	for _, o := range opts {
		o(&opt)
	}
	if opt.Registry == nil {  
		opt.Registry = &registry.Registry{
			RegNaming: registry.NewDNSNamingRegistry(),
		}
		opt.Client.Init(client.WithRegistryNaming(opt.Registry.RegNaming))
		opt.Server.Init(server.WithRegistryNaming(opt.Registry.RegNaming))
	}
	return opt
}
func WithName(n string) Option {
	return func(o *Options) {
		o.Server.Init(server.Name(n))
		o.Client.Init(client.WithServiceName(n))
	}
}