code: func (b *Broker) refreshMetadata() error {
  	meta, err := b.fetchMetadata()
  	if err == nil {
  		b.cacheMetadata(meta)
  	}
  	return err
  }
docs: // refreshMetadata is requesting metadata information from any node and refresh
  // internal cached representation.
  // Because it's changing internal state, this method requires lock protection,
  // but it does not acquire nor release lock itself.