- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.0.0


### Steps to reproduce this issue

1. dubbo config-center 相关yml配置如下
```
dubbo:
  ...
  config-center:
    address: nacos://xxxx:8848
    username: someusername
    password: xxxx
```

2. 在执行 org.apache.dubbo.config.bootstrap.DubboBootstrap#startConfigCenter 方法时会调用 configCenterConfig.refresh(); 方法。
3. setAddress方法，会覆盖已经设置过的username和password

```
public void setAddress(String address) {
        this.address = address;
        if (address != null) {
            try {
                URL url = URL.valueOf(address);
                setUsername(url.getUsername());
                setPassword(url.getPassword());
                updateIdIfAbsent(url.getProtocol());
                updateProtocolIfAbsent(url.getProtocol());
                updatePortIfAbsent(url.getPort());
                updateParameters(url.getParameters());
            } catch (Exception ignored) {
            }
        }
    }
```

### Expected Result

希望设置前先判断是否已经设置过相关属性值



Map<String, String> metaData = configCenter.getMetaData();
        Assertions.assertEquals(0, metaData.size(), "Expect empty metadata but found: "+metaData);
    }
    @Test
    public void testParameters() {
        ConfigCenterConfig cc = new ConfigCenterConfig();
        cc.setParameters(new LinkedHashMap<>());
        cc.getParameters().put(CLIENT_KEY, null);
        Map<String, String> params = new LinkedHashMap<>();
        ConfigCenterConfig.appendParameters(params, cc);
        Map<String, String> attributes = new LinkedHashMap<>();
        ConfigCenterConfig.appendAttributes(attributes, cc);
        String encodedParametersStr = attributes.get("parameters");
        Assertions.assertEquals("[]", encodedParametersStr);
        Assertions.assertEquals(0, StringUtils.parseParameters(encodedParametersStr).size());
    }
    @Test
    public void testAttributes() {
        ConfigCenterConfig cc = new ConfigCenterConfig();
        cc.setAddress("zookeeper://127.0.0.1:2181");
        Map<String, String> attributes = new LinkedHashMap<>();
        ConfigCenterConfig.appendAttributes(attributes, cc);
        Assertions.assertEquals(cc.getAddress(), attributes.get("address"));
        Assertions.assertEquals(cc.getProtocol(), attributes.get("protocol"));
        Assertions.assertEquals(""+cc.getPort(), attributes.get("port"));
        Assertions.assertEquals(null, attributes.get("valid"));
        Assertions.assertEquals(null, attributes.get("refreshed"));
    }
}