fix(produer):Remove cycle package
diff --git a/core/producer.go b/core/producer.go
index e54890f..03254b0 100644
--- a/core/producer.go
+++ b/core/producer.go
@@ -35,7 +35,6 @@
 	"errors"
 	log "github.com/sirupsen/logrus"
 	"unsafe"
-	"github.com/apache/rocketmq-client-go/core"
 )
 
 type SendStatus int
@@ -231,7 +230,7 @@
 func (p *defaultProducer) SendMessageOrderly(msg *Message, selector MessageQueueSelector, arg interface{}, autoRetryTimes int) (*SendResult, error) {
 	if p.config.ProducerModel == OrderlyProducer {
 		log.Warnf("Can not send message orderly by common select queue in lite order producer")
-		return nil, rocketmq.ErrSendOrderlyFailed
+		return nil, ErrSendOrderlyFailed
 	}
 	cmsg := goMsgToC(msg)
 	defer C.DestroyMessage(cmsg)
@@ -275,15 +274,18 @@
 func (p *defaultProducer) SendMessageOrderlyByShardingKey(msg *Message, shardingkey string) (*SendResult, error) {
 	if p.config.ProducerModel != OrderlyProducer {
 		log.Warnf("Can not send message orderly, This method only support in lite order producer.")
-		return nil, rocketmq.ErrSendOrderlyFailed
+		return nil, ErrSendOrderlyFailed
 	}
 	cmsg := goMsgToC(msg)
 	defer C.DestroyMessage(cmsg)
+	cshardingkey := C.CString(shardingkey)
+	defer C.free(unsafe.Pointer(cshardingkey))
 	var sr C.struct__SendResult_
 	err := rmqError(C.SendMessageOrderlyByShardingKey(
 		p.cproduer,
 		cmsg,
-		unsafe.Pointer(&shardingkey)))
+		cshardingkey,
+		&sr))
 
 	if err != NIL {
 		log.Warnf("send message orderly error, error is: %s", err.Error())