[improve] change RoutingMode default from UseSinglePartition to RoundRobinDistribution (#507)

(cherry picked from commit 5632b4b9107eed0911981d46054f445cbf80ebf3)
diff --git a/include/pulsar/ProducerConfiguration.h b/include/pulsar/ProducerConfiguration.h
index 1724fff..9e2a06d 100644
--- a/include/pulsar/ProducerConfiguration.h
+++ b/include/pulsar/ProducerConfiguration.h
@@ -237,7 +237,7 @@
     /**
      * Set the message routing modes for partitioned topics.
      *
-     * Default: UseSinglePartition
+     * Default: RoundRobinDistribution
      *
      * @param PartitionsRoutingMode partition routing mode.
      * @return
diff --git a/lib/ProducerConfigurationImpl.h b/lib/ProducerConfigurationImpl.h
index c635c48..c324020 100644
--- a/lib/ProducerConfigurationImpl.h
+++ b/lib/ProducerConfigurationImpl.h
@@ -34,7 +34,7 @@
     CompressionType compressionType{CompressionNone};
     int maxPendingMessages{1000};
     int maxPendingMessagesAcrossPartitions{50000};
-    ProducerConfiguration::PartitionsRoutingMode routingMode{ProducerConfiguration::UseSinglePartition};
+    ProducerConfiguration::PartitionsRoutingMode routingMode{ProducerConfiguration::RoundRobinDistribution};
     MessageRoutingPolicyPtr messageRouter;
     ProducerConfiguration::HashingScheme hashingScheme{ProducerConfiguration::BoostHash};
     bool useLazyStartPartitionedProducers{false};
diff --git a/tests/BasicEndToEndTest.cc b/tests/BasicEndToEndTest.cc
index c269538..4330609 100644
--- a/tests/BasicEndToEndTest.cc
+++ b/tests/BasicEndToEndTest.cc
@@ -1697,9 +1697,11 @@
 
     std::string subName = "sub-testSeekOnPartitionedTopic";
     Producer producer;
+    ProducerConfiguration conf;
+    conf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
 
     Promise<Result, Producer> producerPromise;
-    client.createProducerAsync(topicName, WaitForCallbackValue<Producer>(producerPromise));
+    client.createProducerAsync(topicName, conf, WaitForCallbackValue<Producer>(producerPromise));
     Future<Result, Producer> producerFuture = producerPromise.getFuture();
     Result result = producerFuture.get(producer);
     ASSERT_EQ(ResultOk, result);
diff --git a/tests/ProducerConfigurationTest.cc b/tests/ProducerConfigurationTest.cc
index df5867c..b6abea3 100644
--- a/tests/ProducerConfigurationTest.cc
+++ b/tests/ProducerConfigurationTest.cc
@@ -33,7 +33,7 @@
     ASSERT_EQ(conf.getCompressionType(), CompressionType::CompressionNone);
     ASSERT_EQ(conf.getMaxPendingMessages(), 1000);
     ASSERT_EQ(conf.getMaxPendingMessagesAcrossPartitions(), 50000);
-    ASSERT_EQ(conf.getPartitionsRoutingMode(), ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(conf.getPartitionsRoutingMode(), ProducerConfiguration::RoundRobinDistribution);
     ASSERT_EQ(conf.getMessageRouterPtr(), MessageRoutingPolicyPtr{});
     ASSERT_EQ(conf.getHashingScheme(), ProducerConfiguration::BoostHash);
     ASSERT_EQ(conf.getBlockIfQueueFull(), false);
@@ -88,8 +88,8 @@
     conf.setMaxPendingMessagesAcrossPartitions(100000);
     ASSERT_EQ(conf.getMaxPendingMessagesAcrossPartitions(), 100000);
 
-    conf.setPartitionsRoutingMode(ProducerConfiguration::RoundRobinDistribution);
-    ASSERT_EQ(conf.getPartitionsRoutingMode(), ProducerConfiguration::RoundRobinDistribution);
+    conf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(conf.getPartitionsRoutingMode(), ProducerConfiguration::UseSinglePartition);
 
     const auto router = std::make_shared<MockMessageRoutingPolicy>();
     conf.setMessageRouter(router);
diff --git a/tests/ReaderTest.cc b/tests/ReaderTest.cc
index 0371bac..3da25e9 100644
--- a/tests/ReaderTest.cc
+++ b/tests/ReaderTest.cc
@@ -67,7 +67,9 @@
     ASSERT_EQ(ResultOk, client.createReader(topicName, MessageId::earliest(), readerConf, reader));
 
     Producer producer;
-    ASSERT_EQ(ResultOk, client.createProducer(topicName, producer));
+    ProducerConfiguration producerConf;
+    producerConf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(ResultOk, client.createProducer(topicName, producerConf, producer));
 
     for (int i = 0; i < 10; i++) {
         std::string content = "my-message-" + std::to_string(i);
@@ -142,7 +144,9 @@
     initTopic(topicName);
 
     Producer producer;
-    ASSERT_EQ(ResultOk, client.createProducer(topicName, producer));
+    ProducerConfiguration producerConf;
+    producerConf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(ResultOk, client.createProducer(topicName, producerConf, producer));
 
     for (int i = 0; i < 10; i++) {
         std::string content = "my-message-" + std::to_string(i);
@@ -176,7 +180,9 @@
     initTopic(topicName);
 
     Producer producer;
-    ASSERT_EQ(ResultOk, client.createProducer(topicName, producer));
+    ProducerConfiguration producerConf;
+    producerConf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(ResultOk, client.createProducer(topicName, producerConf, producer));
 
     for (int i = 0; i < 10; i++) {
         std::string content = "my-message-" + std::to_string(i);
@@ -223,7 +229,9 @@
     initTopic(topicName);
 
     Producer producer;
-    ASSERT_EQ(ResultOk, client.createProducer(topicName, producer));
+    ProducerConfiguration producerConf;
+    producerConf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(ResultOk, client.createProducer(topicName, producerConf, producer));
 
     for (int i = 0; i < 10; i++) {
         std::string content = "my-message-" + std::to_string(i);
@@ -263,7 +271,9 @@
     initTopic(topicName);
 
     Producer producer;
-    ASSERT_EQ(ResultOk, client.createProducer(topicName, producer));
+    ProducerConfiguration producerConf;
+    producerConf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
+    ASSERT_EQ(ResultOk, client.createProducer(topicName, producerConf, producer));
 
     for (int i = 0; i < 10; i++) {
         std::string content = "my-message-" + std::to_string(i);
@@ -459,6 +469,7 @@
     Producer producer;
     ProducerConfiguration producerConf;
     producerConf.setBatchingEnabled(false);
+    producerConf.setPartitionsRoutingMode(ProducerConfiguration::UseSinglePartition);
     ASSERT_EQ(ResultOk, client.createProducer(topicName, producerConf, producer));
 
     // 2. create reader, and expect hasMessageAvailable return false since no message produced.