func NewRouter(c *config.Config) *Router { router := &Router{ config: c, } // setup number of procs if router.config.GoMaxProcs != 0 { runtime.GOMAXPROCS(router.config.GoMaxProcs) } router.mbusClient = yagnats.NewClient() router.registry = registry.NewCFRegistry(router.config, router.mbusClient) router.registry.StartPruningCycle() router.varz = varz.NewVarz(router.registry) args := proxy.ProxyArgs{ EndpointTimeout: router.config.EndpointTimeout, Ip: router.config.Ip, TraceKey: router.config.TraceKey, Registry: router.registry, Reporter: router.varz, Logger: access_log.CreateRunningAccessLogger(router.config), } router.proxy = proxy.NewProxy(args) var host string if router.config.Status.Port != 0 { host = fmt.Sprintf("%s:%d", router.config.Ip, router.config.Status.Port) } varz := &vcap.Varz{ UniqueVarz: router.varz, } varz.LogCounts = log.Counter healthz := &vcap.Healthz{ LockableObject: router.registry, } router.component = &vcap.VcapComponent{ Type: "Router", Index: router.config.Index, Host: host, Credentials: []string{router.config.Status.User, router.config.Status.Pass}, Config: router.config, Varz: varz, Healthz: healthz, InfoRoutes: map[string]json.Marshaler{ "/routes": router.registry, }, } vcap.StartComponent(router.component) return router }
func NewRouter(c *Config) *Router { router := &Router{ config: c, } // setup number of procs if router.config.GoMaxProcs != 0 { runtime.GOMAXPROCS(router.config.GoMaxProcs) } router.establishMBus() router.registry = NewRegistry(router.config, router.mbusClient) router.registry.StartPruningCycle() router.varz = NewVarz(router.registry) router.proxy = NewProxy(router.config, router.registry, router.varz) var host string if router.config.Status.Port != 0 { host = fmt.Sprintf("%s:%d", router.config.Ip, router.config.Status.Port) } varz := &vcap.Varz{ UniqueVarz: router.varz, } varz.LogCounts = logCounter healthz := &vcap.Healthz{ LockableObject: router.registry, } router.component = &vcap.VcapComponent{ Type: "Router", Index: router.config.Index, Host: host, Credentials: []string{router.config.Status.User, router.config.Status.Pass}, Config: router.config, Logger: log, Varz: varz, Healthz: healthz, InfoRoutes: map[string]json.Marshaler{ "/routes": router.registry, }, } vcap.StartComponent(router.component) return router }