https://github.com/apache/dubbo/blob/532ce72f8377abf8ff659430b86e0919c9aff562/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java#L240-L248 

What ever user use `instance` service discovery or `interface` service discovery, we also publish service name mapping info. 
But service name mapping need metadata report dependency, so if some one just use `interface` service discovery, the user still need need metadata report dependency.

Here we add a judgement, check current service config use `instance` service discovery or not, to judge publish service name mapping or not.

/**
     * The flag whether a service has unexported ,if the method unexported is invoked, the value is true
     */
    private transient volatile boolean unexported;
    private DubboBootstrap bootstrap;
    private transient volatile AtomicBoolean initialized = new AtomicBoolean(false);
    /**
     * The exported services
     */
    private final List<Exporter<?>> exporters = new ArrayList<Exporter<?>>();
    private List<ServiceListener> serviceListeners = new ArrayList<>();
    public ServiceConfig() {
    }
    public ServiceConfig(Service service) {
        super(service);
    }
    @Override
    @Parameter(excluded = true, attribute = false)
    public boolean isExported() {
        return exported;
    }
    @Override
    @Parameter(excluded = true, attribute = false)
    public boolean isUnexported() {
        return unexported;
    }
    @Override
    public void unexport() {
        if (!exported) {
            return;