Merge branch 'native' into v2.0.0-rc1
diff --git a/.travis.yml b/.travis.yml
index 2562e74..dce7b2e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,7 +4,7 @@
   - "1.11.x"
   - "1.12.x"
 
-go_import_path: github.com/apache/rocketmq-client-go
+go_import_path: github.com/apache/rocketmq-client-go/v2
 
 env:
   global:
@@ -27,7 +27,7 @@
   - nohup sh bin/mqbroker -n localhost:9876 &
 
 script:
-  - cd ${GOPATH}/src/github.com/apache/rocketmq-client-go
+  - cd ${GOPATH}/src/github.com/apache/rocketmq-client-go/v2
   - go fmt ./... && [[ -z `git status -s` ]]
   - go mod vendor && go test ./... -coverprofile=coverage.txt -covermode=atomic
 
diff --git a/README.md b/README.md
index b7ca531..d4fdfa8 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,7 @@
 * Mailing Lists: <https://rocketmq.apache.org/about/contact/>
 * Home: <https://rocketmq.apache.org>
 * Docs: <https://rocketmq.apache.org/docs/quick-start/>
-* Issues: <https://github.com/apache/rocketmq-client-go/issues>
+* Issues: <https://github.com/apache/rocketmq-client-go/v2/issues>
 * Ask: <https://stackoverflow.com/questions/tagged/rocketmq>
 * Slack: <https://rocketmq-community.slack.com/>
  
diff --git a/api.go b/api.go
index 4a7a90e..0f9a0bd 100644
--- a/api.go
+++ b/api.go
@@ -21,9 +21,9 @@
 	"context"
 	"github.com/pkg/errors"
 
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 type Producer interface {
diff --git a/consumer/consumer.go b/consumer/consumer.go
index ffa6f89..5a5d7d6 100644
--- a/consumer/consumer.go
+++ b/consumer/consumer.go
@@ -31,11 +31,11 @@
 	"github.com/pkg/errors"
 	"github.com/tidwall/gjson"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 const (
diff --git a/consumer/consumer_test.go b/consumer/consumer_test.go
index a419dc7..8b99767 100644
--- a/consumer/consumer_test.go
+++ b/consumer/consumer_test.go
@@ -26,9 +26,9 @@
 	. "github.com/smartystreets/goconvey/convey"
 	"github.com/stretchr/testify/assert"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func TestParseTimestamp(t *testing.T) {
diff --git a/consumer/interceptor.go b/consumer/interceptor.go
index b78679b..aababfe 100644
--- a/consumer/interceptor.go
+++ b/consumer/interceptor.go
@@ -21,9 +21,9 @@
 	"context"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 // WithTrace support rocketmq trace: https://github.com/apache/rocketmq/wiki/RIP-6-Message-Trace.
diff --git a/consumer/lock.go b/consumer/lock.go
index 2376400..6fb17cd 100644
--- a/consumer/lock.go
+++ b/consumer/lock.go
@@ -20,7 +20,7 @@
 import (
 	"sync"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 type QueueLock struct {
diff --git a/consumer/mock_offset_store.go b/consumer/mock_offset_store.go
index b9fa4cf..a78a698 100644
--- a/consumer/mock_offset_store.go
+++ b/consumer/mock_offset_store.go
@@ -22,7 +22,7 @@
 package consumer
 
 import (
-	primitive "github.com/apache/rocketmq-client-go/primitive"
+	primitive "github.com/apache/rocketmq-client-go/v2/primitive"
 	gomock "github.com/golang/mock/gomock"
 	reflect "reflect"
 )
diff --git a/consumer/offset_store.go b/consumer/offset_store.go
index eba2008..e5f3bab 100644
--- a/consumer/offset_store.go
+++ b/consumer/offset_store.go
@@ -28,11 +28,11 @@
 
 	"github.com/json-iterator/go"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 type readType int
@@ -53,7 +53,7 @@
 	}
 }
 
-//go:generate mockgen -source offset_store.go -destination mock_offset_store.go -self_package github.com/apache/rocketmq-client-go/consumer  --package consumer OffsetStore
+//go:generate mockgen -source offset_store.go -destination mock_offset_store.go -self_package github.com/apache/rocketmq-client-go/v2/consumer  --package consumer OffsetStore
 type OffsetStore interface {
 	persist(mqs []*primitive.MessageQueue)
 	remove(mq *primitive.MessageQueue)
diff --git a/consumer/offset_store_test.go b/consumer/offset_store_test.go
index f8bb3f6..27b98d9 100644
--- a/consumer/offset_store_test.go
+++ b/consumer/offset_store_test.go
@@ -24,9 +24,9 @@
 	"github.com/golang/mock/gomock"
 	. "github.com/smartystreets/goconvey/convey"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func TestNewLocalFileOffsetStore(t *testing.T) {
diff --git a/consumer/option.go b/consumer/option.go
index 5b585a3..2537554 100644
--- a/consumer/option.go
+++ b/consumer/option.go
@@ -20,8 +20,8 @@
 import (
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 type consumerOptions struct {
diff --git a/consumer/process_queue.go b/consumer/process_queue.go
index 3ab5b12..595cebb 100644
--- a/consumer/process_queue.go
+++ b/consumer/process_queue.go
@@ -28,9 +28,9 @@
 	gods_util "github.com/emirpasic/gods/utils"
 	uatomic "go.uber.org/atomic"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 const (
diff --git a/consumer/pull_consumer.go b/consumer/pull_consumer.go
index f7c8ef4..83369d1 100644
--- a/consumer/pull_consumer.go
+++ b/consumer/pull_consumer.go
@@ -25,10 +25,10 @@
 
 	"github.com/pkg/errors"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 type PullConsumer interface {
diff --git a/consumer/push_consumer.go b/consumer/push_consumer.go
index 731eb9d..a593239 100644
--- a/consumer/push_consumer.go
+++ b/consumer/push_consumer.go
@@ -28,11 +28,11 @@
 
 	"github.com/pkg/errors"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 // In most scenarios, this is the mostly recommended usage to consume messages.
diff --git a/consumer/push_consumer_test.go b/consumer/push_consumer_test.go
index 764de4c..3115807 100644
--- a/consumer/push_consumer_test.go
+++ b/consumer/push_consumer_test.go
@@ -20,8 +20,8 @@
 import (
 	"context"
 	"fmt"
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 	"github.com/golang/mock/gomock"
 	. "github.com/smartystreets/goconvey/convey"
 	"testing"
diff --git a/consumer/statistics.go b/consumer/statistics.go
index fdc6379..aae5f89 100644
--- a/consumer/statistics.go
+++ b/consumer/statistics.go
@@ -24,8 +24,8 @@
 	"sync/atomic"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 var (
diff --git a/consumer/strategy.go b/consumer/strategy.go
index ff7055f..2af48de 100644
--- a/consumer/strategy.go
+++ b/consumer/strategy.go
@@ -22,9 +22,9 @@
 
 	"stathat.com/c/consistent"
 
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 // Strategy Algorithm for message allocating between consumers
diff --git a/consumer/strategy_test.go b/consumer/strategy_test.go
index 8b4f9e4..3cd79cc 100644
--- a/consumer/strategy_test.go
+++ b/consumer/strategy_test.go
@@ -19,7 +19,7 @@
 
 import (
 	"fmt"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 	. "github.com/smartystreets/goconvey/convey"
 	"testing"
 )
diff --git a/docs/Introduction.md b/docs/Introduction.md
index f455677..2e32356 100644
--- a/docs/Introduction.md
+++ b/docs/Introduction.md
@@ -3,7 +3,7 @@
 ### go mod
 ```
 require (
-    github.com/apache/rocketmq-client-go v2.0.0-alpha1
+    github.com/apache/rocketmq-client-go/v2 v2.0.0-rc1
 )
 ```
 
@@ -92,4 +92,4 @@
 ```
 - start the consumer(**NOTE: MUST after subscribe**)
 
-Full examples: [consumer](../examples/consumer)
\ No newline at end of file
+Full examples: [consumer](../examples/consumer)
diff --git a/examples/consumer/acl/main.go b/examples/consumer/acl/main.go
index e2ab327..583f8f0 100644
--- a/examples/consumer/acl/main.go
+++ b/examples/consumer/acl/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/broadcast/main.go b/examples/consumer/broadcast/main.go
index f87de3d..114aa87 100644
--- a/examples/consumer/broadcast/main.go
+++ b/examples/consumer/broadcast/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/delay/main.go b/examples/consumer/delay/main.go
index 10c4bf0..d14c620 100644
--- a/examples/consumer/delay/main.go
+++ b/examples/consumer/delay/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/interceptor/main.go b/examples/consumer/interceptor/main.go
index e09e500..37a5979 100644
--- a/examples/consumer/interceptor/main.go
+++ b/examples/consumer/interceptor/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/namespace/main.go b/examples/consumer/namespace/main.go
index f2fbfa0..815e152 100644
--- a/examples/consumer/namespace/main.go
+++ b/examples/consumer/namespace/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/orderly/main.go b/examples/consumer/orderly/main.go
index fe5ac15..3e51896 100644
--- a/examples/consumer/orderly/main.go
+++ b/examples/consumer/orderly/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/pull/main.go b/examples/consumer/pull/main.go
index 2b0a9f2..3c75272 100644
--- a/examples/consumer/pull/main.go
+++ b/examples/consumer/pull/main.go
@@ -22,10 +22,10 @@
 	"fmt"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 func main() {
diff --git a/examples/consumer/retry/concurrent/main.go b/examples/consumer/retry/concurrent/main.go
index 8ca31b0..acfe749 100644
--- a/examples/consumer/retry/concurrent/main.go
+++ b/examples/consumer/retry/concurrent/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 // use concurrent consumer model, when Subscribe function return consumer.ConsumeRetryLater, the message will be
diff --git a/examples/consumer/retry/order/main.go b/examples/consumer/retry/order/main.go
index 2b34a68..ee726eb 100644
--- a/examples/consumer/retry/order/main.go
+++ b/examples/consumer/retry/order/main.go
@@ -28,9 +28,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/simple/main.go b/examples/consumer/simple/main.go
index 99c56fa..41091c4 100644
--- a/examples/consumer/simple/main.go
+++ b/examples/consumer/simple/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/strategy/main.go b/examples/consumer/strategy/main.go
index a1ef54a..5ff639e 100644
--- a/examples/consumer/strategy/main.go
+++ b/examples/consumer/strategy/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/tag/main.go b/examples/consumer/tag/main.go
index 9c5d2fa..a2e811f 100644
--- a/examples/consumer/tag/main.go
+++ b/examples/consumer/tag/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/consumer/trace/main.go b/examples/consumer/trace/main.go
index 83a564e..d25a635 100644
--- a/examples/consumer/trace/main.go
+++ b/examples/consumer/trace/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/consumer"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/consumer"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func main() {
diff --git a/examples/producer/acl/main.go b/examples/producer/acl/main.go
index dec64e1..73d4fcb 100644
--- a/examples/producer/acl/main.go
+++ b/examples/producer/acl/main.go
@@ -23,9 +23,9 @@
 	"fmt"
 	"os"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/async/main.go b/examples/producer/async/main.go
index 4a9bfa2..699a70e 100644
--- a/examples/producer/async/main.go
+++ b/examples/producer/async/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"sync"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 // Package main implements a async producer to send message.
diff --git a/examples/producer/batch/main.go b/examples/producer/batch/main.go
index da44480..6260536 100644
--- a/examples/producer/batch/main.go
+++ b/examples/producer/batch/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"strconv"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/delay/main.go b/examples/producer/delay/main.go
index 8116ed8..6d5cb5d 100644
--- a/examples/producer/delay/main.go
+++ b/examples/producer/delay/main.go
@@ -22,9 +22,9 @@
 	"fmt"
 	"os"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/interceptor/main.go b/examples/producer/interceptor/main.go
index ebd2df6..8dafe3d 100644
--- a/examples/producer/interceptor/main.go
+++ b/examples/producer/interceptor/main.go
@@ -23,9 +23,9 @@
 	"fmt"
 	"os"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/namespace/main.go b/examples/producer/namespace/main.go
index e4ae477..5a82b72 100644
--- a/examples/producer/namespace/main.go
+++ b/examples/producer/namespace/main.go
@@ -23,9 +23,9 @@
 	"fmt"
 	"os"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/simple/main.go b/examples/producer/simple/main.go
index 5d2ce68..63bc5a1 100644
--- a/examples/producer/simple/main.go
+++ b/examples/producer/simple/main.go
@@ -22,9 +22,9 @@
 	"fmt"
 	"os"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 // Package main implements a simple producer to send message.
diff --git a/examples/producer/tag/main.go b/examples/producer/tag/main.go
index 8fb914f..02c402e 100644
--- a/examples/producer/tag/main.go
+++ b/examples/producer/tag/main.go
@@ -22,9 +22,9 @@
 	"fmt"
 	"os"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/trace/main.go b/examples/producer/trace/main.go
index 3d17c0b..33d86d5 100644
--- a/examples/producer/trace/main.go
+++ b/examples/producer/trace/main.go
@@ -23,9 +23,9 @@
 	"os"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 func main() {
diff --git a/examples/producer/transaction/main.go b/examples/producer/transaction/main.go
index 1b5181e..8536501 100644
--- a/examples/producer/transaction/main.go
+++ b/examples/producer/transaction/main.go
@@ -26,9 +26,9 @@
 	"sync/atomic"
 	"time"
 
-	"github.com/apache/rocketmq-client-go"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/producer"
+	"github.com/apache/rocketmq-client-go/v2"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/producer"
 )
 
 type DemoListener struct {
diff --git a/go.mod b/go.mod
index daf9437..8388959 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/apache/rocketmq-client-go
+module github.com/apache/rocketmq-client-go/v2
 
 require (
 	github.com/emirpasic/gods v1.12.0
diff --git a/internal/callback.go b/internal/callback.go
index 761fe36..fea11b4 100644
--- a/internal/callback.go
+++ b/internal/callback.go
@@ -20,7 +20,7 @@
 import (
 	"net"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 // remotingClient callback TransactionProducer
diff --git a/internal/client.go b/internal/client.go
index 86a02cb..08bbcb3 100644
--- a/internal/client.go
+++ b/internal/client.go
@@ -28,10 +28,10 @@
 	"sync"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 const (
@@ -123,7 +123,7 @@
 		opt.InstanceName, opt.UnitMode, opt.UnitName, opt.VIPChannelEnabled)
 }
 
-//go:generate mockgen -source client.go -destination mock_client.go -self_package github.com/apache/rocketmq-client-go/internal  --package internal RMQClient
+//go:generate mockgen -source client.go -destination mock_client.go -self_package github.com/apache/rocketmq-client-go/v2/internal  --package internal RMQClient
 type RMQClient interface {
 	Start()
 	Shutdown()
diff --git a/internal/mock_client.go b/internal/mock_client.go
index d8ed7b2..ab34ac1 100644
--- a/internal/mock_client.go
+++ b/internal/mock_client.go
@@ -28,8 +28,8 @@
 
 	"github.com/golang/mock/gomock"
 
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 // MockInnerProducer is a mock of InnerProducer interface
diff --git a/internal/mock_namesrv.go b/internal/mock_namesrv.go
index 65234e1..a7a0842 100644
--- a/internal/mock_namesrv.go
+++ b/internal/mock_namesrv.go
@@ -25,7 +25,7 @@
 
 	"github.com/golang/mock/gomock"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 // MockNamesrvs is a mock of Namesrvs interface
diff --git a/internal/model.go b/internal/model.go
index 0c62aeb..0c8259f 100644
--- a/internal/model.go
+++ b/internal/model.go
@@ -25,9 +25,9 @@
 	"sort"
 	"strings"
 
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 type FindBrokerResult struct {
diff --git a/internal/model_test.go b/internal/model_test.go
index 56703e0..0d8dcd7 100644
--- a/internal/model_test.go
+++ b/internal/model_test.go
@@ -26,8 +26,8 @@
 	. "github.com/smartystreets/goconvey/convey"
 	"github.com/tidwall/gjson"
 
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func TestHeartbeatData(t *testing.T) {
diff --git a/internal/namesrv.go b/internal/namesrv.go
index 43c5d5d..9bbfc9c 100644
--- a/internal/namesrv.go
+++ b/internal/namesrv.go
@@ -20,9 +20,9 @@
 import (
 	"errors"
 	"fmt"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 	"io/ioutil"
 	"net/http"
 	"os"
@@ -46,7 +46,7 @@
 	ErrIllegalIP    = errors.New("IP addr error")
 )
 
-//go:generate mockgen -source namesrv.go -destination mock_namesrv.go -self_package github.com/apache/rocketmq-client-go/internal  --package internal Namesrvs
+//go:generate mockgen -source namesrv.go -destination mock_namesrv.go -self_package github.com/apache/rocketmq-client-go/v2/internal  --package internal Namesrvs
 type Namesrvs interface {
 	UpdateNameServerAddress(nameServerDomain, instanceName string)
 
diff --git a/internal/remote/future.go b/internal/remote/future.go
index cba210e..ffbf781 100644
--- a/internal/remote/future.go
+++ b/internal/remote/future.go
@@ -21,7 +21,7 @@
 	"context"
 	"sync"
 
-	"github.com/apache/rocketmq-client-go/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
 )
 
 // ResponseFuture
diff --git a/internal/remote/interceptor.go b/internal/remote/interceptor.go
index 0197f27..cf96717 100644
--- a/internal/remote/interceptor.go
+++ b/internal/remote/interceptor.go
@@ -26,7 +26,7 @@
 	"sort"
 	"strings"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 const (
diff --git a/internal/remote/mock_remote_client.go b/internal/remote/mock_remote_client.go
index d5b86a5..bc1a0da 100644
--- a/internal/remote/mock_remote_client.go
+++ b/internal/remote/mock_remote_client.go
@@ -22,7 +22,7 @@
 
 import (
 	context "context"
-	primitive "github.com/apache/rocketmq-client-go/primitive"
+	primitive "github.com/apache/rocketmq-client-go/v2/primitive"
 	gomock "github.com/golang/mock/gomock"
 	reflect "reflect"
 )
diff --git a/internal/remote/remote_client.go b/internal/remote/remote_client.go
index 58abd3a..302b5e5 100644
--- a/internal/remote/remote_client.go
+++ b/internal/remote/remote_client.go
@@ -25,9 +25,9 @@
 	"net"
 	"sync"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 type ClientRequestFunc func(*RemotingCommand, net.Addr) *RemotingCommand
@@ -36,7 +36,7 @@
 	// TODO
 }
 
-//go:generate mockgen -source remote_client.go -destination mock_remote_client.go -self_package github.com/apache/rocketmq-client-go/internal/remote  --package remote RemotingClient
+//go:generate mockgen -source remote_client.go -destination mock_remote_client.go -self_package github.com/apache/rocketmq-client-go/v2/internal/remote  --package remote RemotingClient
 type RemotingClient interface {
 	RegisterRequestFunc(code int16, f ClientRequestFunc)
 	RegisterInterceptor(interceptors ...primitive.Interceptor)
@@ -212,7 +212,7 @@
 		f := c.processors[cmd.Code]
 		if f != nil {
 			// single goroutine will be deadlock
-			// TODO: optimize with goroutine pool, https://github.com/apache/rocketmq-client-go/issues/307
+			// TODO: optimize with goroutine pool, https://github.com/apache/rocketmq-client-go/v2/issues/307
 			go primitive.WithRecover(func() {
 				res := f(cmd, r.RemoteAddr())
 				if res != nil {
diff --git a/internal/remote/remote_client_test.go b/internal/remote/remote_client_test.go
index bd53e65..5b69fd6 100644
--- a/internal/remote/remote_client_test.go
+++ b/internal/remote/remote_client_test.go
@@ -27,7 +27,7 @@
 	"testing"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
 
 	"github.com/stretchr/testify/assert"
 )
diff --git a/internal/remote/tcp_conn.go b/internal/remote/tcp_conn.go
index 0c82d52..dda7dcf 100644
--- a/internal/remote/tcp_conn.go
+++ b/internal/remote/tcp_conn.go
@@ -23,7 +23,7 @@
 	"go.uber.org/atomic"
 )
 
-// TODO: Adding TCP Connections Pool, https://github.com/apache/rocketmq-client-go/issues/298
+// TODO: Adding TCP Connections Pool, https://github.com/apache/rocketmq-client-go/v2/issues/298
 type tcpConnWrapper struct {
 	net.Conn
 	closed atomic.Bool
diff --git a/internal/route.go b/internal/route.go
index c5e771e..181ebe9 100644
--- a/internal/route.go
+++ b/internal/route.go
@@ -31,10 +31,10 @@
 	"github.com/json-iterator/go"
 	"github.com/tidwall/gjson"
 
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 const (
diff --git a/internal/route_test.go b/internal/route_test.go
index 4c5c22f..068f285 100644
--- a/internal/route_test.go
+++ b/internal/route_test.go
@@ -27,8 +27,8 @@
 	. "github.com/smartystreets/goconvey/convey"
 	"github.com/stretchr/testify/assert"
 
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func TestQueryTopicRouteInfoFromServer(t *testing.T) {
diff --git a/internal/trace.go b/internal/trace.go
index 9549bba..473b80f 100644
--- a/internal/trace.go
+++ b/internal/trace.go
@@ -29,9 +29,9 @@
 
 	"github.com/pkg/errors"
 
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 type TraceBean struct {
diff --git a/internal/trace_test.go b/internal/trace_test.go
index 23808a3..9c66f81 100644
--- a/internal/trace_test.go
+++ b/internal/trace_test.go
@@ -20,7 +20,7 @@
 import (
 	"testing"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 	. "github.com/smartystreets/goconvey/convey"
 	"github.com/stretchr/testify/assert"
 )
diff --git a/internal/utils/errors.go b/internal/utils/errors.go
index c57e768..0b7ffc2 100644
--- a/internal/utils/errors.go
+++ b/internal/utils/errors.go
@@ -20,7 +20,7 @@
 import (
 	"errors"
 
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 var (
diff --git a/internal/validators.go b/internal/validators.go
index e693fde..ac51db2 100644
--- a/internal/validators.go
+++ b/internal/validators.go
@@ -20,7 +20,7 @@
 import (
 	"regexp"
 
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 const (
diff --git a/primitive/ctx.go b/primitive/ctx.go
index 5761bd6..4481dcd 100644
--- a/primitive/ctx.go
+++ b/primitive/ctx.go
@@ -25,7 +25,7 @@
 	"fmt"
 	"math"
 
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 type CtxKey int
diff --git a/primitive/message.go b/primitive/message.go
index 4693aa5..12f41cc 100644
--- a/primitive/message.go
+++ b/primitive/message.go
@@ -28,7 +28,7 @@
 	"sync"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
 )
 
 const (
diff --git a/producer/interceptor.go b/producer/interceptor.go
index f764dc9..b3d2598 100644
--- a/producer/interceptor.go
+++ b/producer/interceptor.go
@@ -24,9 +24,9 @@
 	"context"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 // WithTrace support rocketmq trace: https://github.com/apache/rocketmq/wiki/RIP-6-Message-Trace.
diff --git a/producer/option.go b/producer/option.go
index 00c2c80..6fc4d25 100644
--- a/producer/option.go
+++ b/producer/option.go
@@ -20,8 +20,8 @@
 import (
 	"time"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func defaultProducerOptions() producerOptions {
diff --git a/producer/producer.go b/producer/producer.go
index 0762762..5503abf 100644
--- a/producer/producer.go
+++ b/producer/producer.go
@@ -28,11 +28,11 @@
 
 	"github.com/pkg/errors"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/internal/utils"
-	"github.com/apache/rocketmq-client-go/primitive"
-	"github.com/apache/rocketmq-client-go/rlog"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/internal/utils"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
+	"github.com/apache/rocketmq-client-go/v2/rlog"
 )
 
 var (
diff --git a/producer/producer_test.go b/producer/producer_test.go
index e1273bb..41bf80a 100644
--- a/producer/producer_test.go
+++ b/producer/producer_test.go
@@ -24,9 +24,9 @@
 	"github.com/golang/mock/gomock"
 	"github.com/stretchr/testify/assert"
 
-	"github.com/apache/rocketmq-client-go/internal"
-	"github.com/apache/rocketmq-client-go/internal/remote"
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/internal"
+	"github.com/apache/rocketmq-client-go/v2/internal/remote"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 const (
diff --git a/producer/selector.go b/producer/selector.go
index b85be87..1aead8b 100644
--- a/producer/selector.go
+++ b/producer/selector.go
@@ -24,7 +24,7 @@
 	"sync/atomic"
 	"time"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 type QueueSelector interface {
diff --git a/producer/selector_test.go b/producer/selector_test.go
index b352d7b..72dc469 100644
--- a/producer/selector_test.go
+++ b/producer/selector_test.go
@@ -22,7 +22,7 @@
 
 	"github.com/stretchr/testify/assert"
 
-	"github.com/apache/rocketmq-client-go/primitive"
+	"github.com/apache/rocketmq-client-go/v2/primitive"
 )
 
 func TestRoundRobin(t *testing.T) {
diff --git a/release-notes.md b/release-notes.md
deleted file mode 100644
index 5a44bbc..0000000
--- a/release-notes.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# RocketMQ Go Client Release-Notes
-
-## 2.0.0 - Alpha2
-
-Many features have not a independent issue, you can find them in Roadmap issue: [2.0.0-alpha2 Roadmap](https://github.com/apache/rocketmq-client-go/issues/75)
-
-### Feature
-- [[PR-86](https://github.com/apache/rocketmq-client-go/issues/86)] - Support Interceptor  
-- [[PR-96](https://github.com/apache/rocketmq-client-go/pull/96)] - Support multiple NameServer  
-- [[PR-102](https://github.com/apache/rocketmq-client-go/pull/102)] - Support QueueSelector  
-- [[PR-100](https://github.com/apache/rocketmq-client-go/pull/100)] - Support SendAsync  
-- [[PR-106](https://github.com/apache/rocketmq-client-go/pull/106)] - Support PullConsumer  
-- [[PR-113](https://github.com/apache/rocketmq-client-go/pull/113)] - Support Statistics of client  
-- [[PR-115](https://github.com/apache/rocketmq-client-go/pull/115)] - Support order message in PushConsumer  
-- [[PR-117](https://github.com/apache/rocketmq-client-go/pull/117)] - Support ACL 
-- [[PR-119](https://github.com/apache/rocketmq-client-go/pull/119/)] - Support retry when consume failed in PushConsumer  
-
-### Improvement
-- [[ISSUE-93](https://github.com/apache/rocketmq-client-go/issues/93)] - refactor API to make more usability.
-- [[PR-107](https://github.com/apache/rocketmq-client-go/pull/107)] - return an error in `start()`  instead of fatal directly
-- [[PR-109](https://github.com/apache/rocketmq-client-go/pull/109)] - add unit test for producer
-- [[PR-116](https://github.com/apache/rocketmq-client-go/pull/116)] - add unit test for internal/route.go
-
-### Bug
-- [[ISSUE-65](https://github.com/apache/rocketmq-client-go/issues/65)] - Fixed the issue that Missing Tag and Properties in Message when use producer.
-- [[PR-97](https://github.com/apache/rocketmq-client-go/pull/97)] - Fixed the issue that The timeout of RPC doesn't work and The InvokeAsync doesn't work