docs/en/client/java/API_Reference_DefaultMQProducer.md
public class DefaultMQProducer extends ClientConfig implements MQProducer
DefaultMQProduceris the entry point for an application to post messages, out of the box, ca quickly create a producer with a no-argument construction. it is mainly responsible for message sending, support synchronous、asynchronous、one-way send. All of these send methods support batch send. The parameters of the sender can be adjusted through the getter/setter methods , provided by this class.DefaultMQProducerhas multi send method and each method is slightly different. Make sure you know the usage before you use it . Blow is a producer example . see more examples.
public class Producer {
public static void main(String[] args) throws MQClientException {
// create a produce with producer_group_name
DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");
// start the producer
producer.start();
for (int i = 0; i < 128; i++)
try {
// construct the msg
Message msg = new Message("TopicTest",
"TagA",
"OrderID188",
"Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
// send sync
SendResult sendResult = producer.send(msg);
// print the result
System.out.printf("%s%n", sendResult);
} catch (Exception e) {
e.printStackTrace();
}
producer.shutdown();
}
}
Note : This class is thread safe. It can be safely shared between multiple threads after configuration and startup is complete.
| Type | Name | description |
|---|---|---|
| DefaultMQProducerImpl | defaultMQProducerImpl | The producer's internal default implementation |
| String | producerGroup | The producer's group |
| String | createTopicKey | Topics that do not exist on the server are automatically created when the message is sent |
| int | defaultTopicQueueNums | The default number of queues to create a topic |
| int | sendMsgTimeout | The timeout for the message to be sent |
| int | compressMsgBodyOverHowmuch | the threshold of the compress of message body |
| int | retryTimesWhenSendFailed | Maximum number of internal attempts to send a message in synchronous mode |
| int | retryTimesWhenSendAsyncFailed | Maximum number of internal attempts to send a message in asynchronous mode |
| boolean | retryAnotherBrokerWhenNotStoreOK | Whether to retry another broker if an internal send fails |
| int | maxMessageSize | Maximum length of message body |
| TraceDispatcher | traceDispatcher | Message trackers. Use rcpHook to track messages |
| Method name | Method description |
|---|---|
| DefaultMQProducer() | creates a producer with default parameter values |
| DefaultMQProducer(final String producerGroup) | creates a producer with producer group name. |
| DefaultMQProducer(final String producerGroup, boolean enableMsgTrace) | creates a producer with producer group name and set whether to enable message tracking |
| DefaultMQProducer(final String producerGroup, boolean enableMsgTrace, final String customizedTraceTopic) | creates a producer with producer group name and set whether to enable message tracking、the trace topic. |
| DefaultMQProducer(RPCHook rpcHook) | creates a producer with a rpc hook. |
| DefaultMQProducer(final String producerGroup, RPCHook rpcHook) | creates a producer with a rpc hook and producer group. |
| DefaultMQProducer(final String producerGroup, RPCHook rpcHook, boolean enableMsgTrace,final String customizedTraceTopic) | all of above. |