Release Notes
Announcements
<!-- in your <dependencies> block --><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.9.4</version></dependency><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-acl</artifactId><version>4.9.4</version></dependency>
// Instantiate a message producer.DefaultMQProducer producer = new DefaultMQProducer(groupName,new AclClientRPCHook(new SessionCredentials(accessKey, secretKey)) // ACL permissions.);// Set the NameServer address.producer.setNamesrvAddr(nameserver);// Start the producer instance.producer.start();
Parameter | Description |
groupName | Producer group name. It is recommended that the topic name be used. |
accessKey | Role token. You can copy the AccessKey from the AccessKey column on the Cluster Permissions page in the console. |
secretKey | Role name. You can copy the SecretKey from the SecretKey column on the Cluster Permissions page in the console. |
nameserver | Cluster access address. You can obtain the access address from the Access Information module on the cluster basic information page in the console. |
int totalMessagesToSend = 5;for (int i = 0; i < totalMessagesToSend; i++) {Message message = new Message(TOPIC_NAME, ("Hello scheduled message " + i).getBytes());// Set the message delay level.message.setDelayTimeLevel(5);// Send messages.SendResult sendResult = producer.send(message);System.out.println("sendResult = " + sendResult);}
int totalMessagesToSend = 1;for (int i = 0; i < totalMessagesToSend; i++) {Message message = new Message(TOPIC_NAME, ("Hello timer message " + i).getBytes());// Set the time for sending a message.long timeStamp = System.currentTimeMillis() + 30000;// To send a scheduled message, specify the scheduled delivery time. The message will be delivered at the specified time. For example, the message will be delivered at 08:08:08 on August 8, 2022.// If the specified timestamp is earlier than the current time, the message will be delivered to the consumer immediately.//Set __STARTDELIVERTIME into the message properties.message.putUserProperty("__STARTDELIVERTIME", String.valueOf(timeStamp));// Send messages.SendResult sendResult = producer.send(message);System.out.println("sendResult = " + sendResult);}
// Instantiate a consumer.DefaultMQPushConsumer pushConsumer = new DefaultMQPushConsumer(groupName,new AclClientRPCHook(new SessionCredentials(accessKey, secretKey))); // ACL permissions.// Set the NameServer address.pushConsumer.setNamesrvAddr(nameserver);
Parameter | Description |
groupName | Group name. You can copy the name from the Group Management page in the console. 4.x virtual cluster/exclusive cluster: Concatenate the namespace name in the format of full namespace name%group name, such as MQ_INSTxxx_aaa%GroupTest.4.x general cluster/5.x cluster: The namespace name does not need to be concatenated. Enter the group name. |
accessKey | Role token. You can copy the AccessKey from the AccessKey column on the Cluster Permissions page in the console. |
secretKey | Role name. You can copy the SecretKey from the SecretKey column on the Cluster Permissions page in the console. |
nameserver | Cluster access address. You can obtain the access address from the Access Information module on the cluster basic information page in the console. |
// Subscribe to a topic.pushConsumer.subscribe(topic_name, "*");// Register a callback implementation class to handle messages pulled from the broker.pushConsumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {// Message processing logic.System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);// Mark the message as successfully consumed and return an appropriate status.return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;});// Start the consumer instance.pushConsumer.start();
Parameter | Description |
topic_name | Topic name. You can copy the name from the Topic Management page in the console. 4.x virtual/exclusive cluster: Concatenate the namespace name in the format of full namespace name%topic name, such as MQ_INSTxxx_aaa%TopicTest.4.x general cluster/5.x cluster: The namespace name does not need to be concatenated. Enter the topic name. |
"*" | If the subscription expression is null or uses the * wildcard, it indicates subscribing to all messages. It also supports the format "tag1 || tag2 || tag3" to subscribe to multiple types of tags. |
Was this page helpful?
You can also Contact sales or Submit a Ticket for help.
Help us improve! Rate your documentation experience in 5 mins.
Feedback