Send subscription to snode when using real push
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQRealPushConsumerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQRealPushConsumerImpl.java
index 755ed58..e684dd1 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQRealPushConsumerImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQRealPushConsumerImpl.java
@@ -914,10 +914,14 @@
                 topic, subExpression);
             this.rebalanceImpl.getSubscriptionInner().put(topic, subscriptionData);
             if (this.mQClientFactory != null) {
-                this.mQClientFactory.sendHeartbeatToAllBrokerWithLock();
+                if (realPushModel) {
+                    this.mQClientFactory.sendHeartbeatToAllSnodeWithLock();
+                } else {
+                    this.mQClientFactory.sendHeartbeatToAllBrokerWithLock();
+                }
             }
         } catch (Exception e) {
-            throw new MQClientException("subscription exception", e);
+            throw new MQClientException("Subscription exception", e);
         }
     }
 
@@ -930,11 +934,15 @@
             subscriptionData.setFilterClassSource(filterClassSource);
             this.rebalanceImpl.getSubscriptionInner().put(topic, subscriptionData);
             if (this.mQClientFactory != null) {
-                this.mQClientFactory.sendHeartbeatToAllBrokerWithLock();
+                if (realPushModel) {
+                    this.mQClientFactory.sendHeartbeatToAllSnodeWithLock();
+                } else {
+                    this.mQClientFactory.sendHeartbeatToAllBrokerWithLock();
+                }
             }
 
         } catch (Exception e) {
-            throw new MQClientException("subscription exception", e);
+            throw new MQClientException("Subscription exception", e);
         }
     }
 
@@ -950,7 +958,11 @@
 
             this.rebalanceImpl.getSubscriptionInner().put(topic, subscriptionData);
             if (this.mQClientFactory != null) {
-                this.mQClientFactory.sendHeartbeatToAllBrokerWithLock();
+                if (realPushModel) {
+                    this.mQClientFactory.sendHeartbeatToAllSnodeWithLock();
+                } else {
+                    this.mQClientFactory.sendHeartbeatToAllBrokerWithLock();
+                }
             }
         } catch (Exception e) {
             throw new MQClientException("subscription exception", e);