in datasource/etcd/sd/servicecenter/syncer.go [56:105]
func (c *Syncer) Sync(ctx context.Context) {
cache, errs := c.Client.GetScCache(ctx)
if len(errs) > 0 {
err := fmt.Errorf("%v", errs)
log.Error("Sync catches errors", err)
err = alarm.Raise(alarm.IDBackendConnectionRefuse,
alarm.AdditionalContext(err.Error()))
if err != nil {
log.Error("", err)
}
if cache == nil {
return
}
}
err := alarm.Clear(alarm.IDBackendConnectionRefuse)
if err != nil {
log.Error("", err)
}
// microservice
serviceCacher, ok := c.cachers[sd.TypeService]
if ok {
c.check(serviceCacher, &cache.Microservices, errs)
}
indexCacher, ok := c.cachers[sd.TypeServiceIndex]
if ok {
c.checkWithConflictHandleFunc(indexCacher, &cache.Indexes, errs, c.logConflictFunc)
}
aliasCacher, ok := c.cachers[sd.TypeServiceAlias]
if ok {
c.checkWithConflictHandleFunc(aliasCacher, &cache.Aliases, errs, c.logConflictFunc)
}
// microservice meta
tagCacher, ok := c.cachers[sd.TypeServiceTag]
if ok {
c.check(tagCacher, &cache.Tags, errs)
}
depRuleCacher, ok := c.cachers[sd.TypeDependencyRule]
if ok {
c.check(depRuleCacher, &cache.DependencyRules, errs)
}
schemaSummaryCacher, ok := c.cachers[sd.TypeSchemaSummary]
if ok {
c.check(schemaSummaryCacher, &cache.Summaries, errs)
}
// instance
instCacher, ok := c.cachers[sd.TypeInstance]
if ok {
c.check(instCacher, &cache.Instances, errs)
}
}