code: func (is *InfoSyncer) GetServerInfoByID(ctx context.Context, id string) (*ServerInfo, error) {
  	if is.etcdCli == nil || id == is.info.ID {
  		return is.info, nil
  	}
  	key := fmt.Sprintf("%s/%s", ServerInformationPath, id)
  	infoMap, err := getInfo(ctx, is.etcdCli, key, keyOpDefaultRetryCnt, keyOpDefaultTimeout)
  	if err != nil {
  		return nil, err
  	}
  	info, ok := infoMap[id]
  	if !ok {
  		return nil, errors.Errorf("[info-syncer] get %s failed", key)
  	}
  	return info, nil
  }
docs: // GetServerInfoByID gets server static information from etcd.