rocketmq pubsub error.
Expected Behavior
rocketmq pubsub
publish message work and consumer only get one every time.
Actual Behavior
publish: it error when publish message,but i can get many message(size of queue count, my expect is one message) on rocketmq console.


consumer:get all queue message.there is one message enough.

Steps to Reproduce the Problem
the doc https://docs.dapr.io/reference/components-reference/supported-pubsub/setup-rocketmq/ to reproduce.
Envirement.
dapr cli: 1.8.0 dapr runtime: 1.8.3 rocketmq: 4.4.0
@ItalyPaleAle can u check it?
The unit of the sendTimeOut(Spec metadata fields: sendTimeOut)is nanosecond. you need to configure it like this: value: 3000000000. please check it.

rocketmq go-client will retry on failure, and dapr rocketmq component will also retry on failure. Your message send timed out, so retry actions have occurred for both rocketmq go-client and dapr rocketmq component. But message was actually sent successfully. That's why you get multiple messages. You can read the source code to prove it

ok and thanks,it worked,but i find new problem that is rocketmq event had packaged duplicate.
rocketmq:

redis:

Please look at the source content in the screenshot.
If rawPayload == false, The data content will be replaced with CloudEvent.
What Cloudevent is serialized by JSON is what you send.

You can close it this way on this side. http: ?metadata.rocketmq-key=dapr_test&metadata.rawPayload=true grpc go: if err := client.PublishEvent(ctx, pubsubName, topicName, data, func(request *pb.PublishEventRequest) { request.Metadata["rawPayload"] = "true" }); err != nil { panic(err) }
Please look at the source content in the screenshot. If rawPayload == false, The data content will be replaced with CloudEvent. What Cloudevent is serialized by JSON is what you send.
You can close it this way on this side. http: ?metadata.rocketmq-key=dapr_test&metadata.rawPayload=true grpc go: if err := client.PublishEvent(ctx, pubsubName, topicName, data, func(request *pb.PublishEventRequest) { request.Metadata["rawPayload"] = "true" }); err != nil { panic(err) }
it work! thank you very much!