rocketmq java例子_RocketMQ之java

RocketMQ提供了Java客户端,用于发送和接收消息。

发送消息有三种方式:同步、异步和单向。

1、同步发送消息

//Instantiate with a producer group name.

DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");//Specify name server addresses.

producer.setNamesrvAddr("localhost:9876");//Launch the instance.

producer.start();//Create a message instance, specifying topic, tag and message body.

Message msg = new Message("TopicTest", "Hello World! ".getBytes(RemotingHelper.DEFAULT_CHARSET));//Call send message to deliver message to one of brokers.

SendResult sendResult =producer.send(msg);

System.out.println(sendResult);//Shut down once the producer instance is not longer in use.

producer.shutdown();

2、异步发送消息

//Instantiate with a producer group name.

DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");//Specify name server addresses.

producer.setNamesrvAddr("localhost:9876");//Launch the instance.

producer.start();

producer.setRetryTimesWhenSendAsyncFailed(0);//Create a message instance, specifying topic, tag and message body.

Message msg = new Message("TopicTest", "Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));

producer.send(msg,newSendCallback() {

@Overridepublic voidonSuccess(SendResult sendResult) {

System.out.println(sendResult);

}

@Overridepublic voidonException(Throwable e) {

e.printStackTrace();

}

});//Shut down once the producer instance is not longer in use.

producer.shutdown();

3、单向发送消息

//Instantiate with a producer group name.

DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");//Specify name server addresses.

producer.setNamesrvAddr("localhost:9876");//Launch the instance.

producer.start();//Create a message instance, specifying topic, tag and message body.

Message msg = new Message("TopicTest", "Hello World! ".getBytes(RemotingHelper.DEFAULT_CHARSET));//Call send message to deliver message to one of brokers.

producer.sendOneWay(msg);//Shut down once the producer instance is not longer in use.

producer.shutdown();

接收消息

// Instantiate with specified consumer group name.

DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");

// Specify name server addresses.

consumer.setNamesrvAddr("localhost:9876");

// Subscribe one more more topics to consume.

consumer.subscribe("TopicTest", "*");

// Register callback to execute on arrival of messages fetched from brokers.

consumer.registerMessageListener(new MessageListenerConcurrently() {

@Override

public ConsumeConcurrentlyStatus consumeMessage(List msgs,

ConsumeConcurrentlyContext context) {

msgs.forEach(msg -> System.out.println(new String(msg.getBody())));

return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;

}

});

//Launch the consumer instance.

consumer.start();

好的,我会为您生成一个简单的springcloud整合rocketmq的示例。以下是示例代码: 1. 安装 RocketMQ 首先,您需要安装RocketMQ。您可以使用官方网站下载并按照安装说明进行安装。 2. 创建 RocketMQ Topic 在您的RocketMQ控制台中,创建一个名为“example_topic”的Topic。 3. 配置项目 在您的Spring Boot项目中,您需要添加以下依赖项: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-rocketmq</artifactId> <version>3.0.1</version> </dependency> ``` 接下来,您需要在您的应用程序中添加以下配置: ``` spring: cloud: stream: rocketmq: binder: name-server: localhost:9876 topics: example_topic ``` 这将配置您的应用程序使用RocketMQ。 4. 编写生产者 在您的应用程序中,您需要编写一个生产者。以下是一个基本的生产者。 ``` import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Source; import org.springframework.messaging.support.MessageBuilder; import org.springframework.scheduling.annotation.Scheduled; @EnableBinding(Source.class) public class Producer { private final Source source; public Producer(Source source) { this.source = source; } @Scheduled(fixedDelay = 1000) public void sendMessage() { String message = "Hello RocketMQ!"; source.output().send(MessageBuilder.withPayload(message).build()); } } ``` 此代码会定期发送消息到RocketMQ的“example_topic”主题。 5. 编写消费者 在您的应用程序中,您需要编写一个消费者。以下是一个基本的消费者。 ``` import java.util.function.Consumer; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.annotation.StreamListener; import org.springframework.cloud.stream.messaging.Sink; @EnableBinding(Sink.class) public class Consumer { @StreamListener(Sink.INPUT) public void receiveMessage(String message) { System.out.println("Received message: " + message); } } ``` 此代码将从RocketMQ中消费消息,并将其输出到控制台。 6. 运行应用程序 现在,您可以运行您的应用程序并查看它是否正常工作。您可以在控制台中看到应用程序发送和接收的消息。 以上就是一个基本的Spring Cloud整合RocketMQ的示例。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值