**Describe the issue**
```
remote_servers.play.shard.replica.port
```

Should use server's TCP port by default.
address.cluster, address.cluster_secret,
                "server", address.compression,
                address.secure, address.priority);
            info.pool = std::make_shared<ConnectionPoolWithFailover>(
                ConnectionPoolPtrs{pool}, settings.load_balancing);
            info.per_replica_pools = {std::move(pool)};
            if (weight)
                slot_to_shard.insert(std::end(slot_to_shard), weight, shards_info.size());
            shards_info.emplace_back(std::move(info));
            addresses_with_failover.emplace_back(std::move(addresses));
        }
        else if (startsWith(key, "shard"))
        {
            
            Poco::Util::AbstractConfiguration::Keys replica_keys;
            config.keys(config_prefix + key, replica_keys);
            addresses_with_failover.emplace_back();
            Addresses & replica_addresses = addresses_with_failover.back();
            UInt32 current_replica_num = 1;
            const auto & partial_prefix = config_prefix + key + ".";
            const auto weight = config.getUInt(partial_prefix + ".weight", default_weight);
            bool internal_replication = config.getBool(partial_prefix + ".internal_replication", false);
            ShardInfoInsertPathForInternalReplication insert_paths;
            
            
            insert_paths.compact = fmt::format("shard{}_all_replicas", current_shard_num);
            for (const auto & replica_key : replica_keys)
            {
                if (startsWith(replica_key, "weight") || startsWith(replica_key, "internal_replication"))
                    continue;