下载官网 Demo
下载地址
导入工程
HTTP 的 Demo 在 http/java-http-demo路径下,使用 Eclipse 或者 Idea 打开http/java-http-demo。具体可参考
Idea 配置教程。
修改配置文件
修改 producer.xml,该文件在src/main/resources/producer/producer.xml路径下。如下所示,修改为自己在阿里云商分配的配置:
域名 Domain 列表 <bean id="producer" class="com.alibaba.ons.message.example.producer.HttpMQProducer">- <!-- domain,请替换,从域名列表选择Topic所在region的域名 -->
- <property name="url" value="http://domain/message" />
- <!-- 阿里云身份验证码,请替换 -->
- <property name="accessKey" value="XXXXXX" />
- <!-- 阿里云身份验证密钥,请替换 -->
- <property name="secretKey" value="XXXXXX" />
- <!-- MQ控制台创建的Topic,请替换 -->
- <property name="topic" value="XXXXXX" />
- <!-- MQ控制台创建的Producer ID,请替换 -->
- <property name="producerId" value="XXXXXX" />
- </bean>
修改 consumer.xml,该文件在
src/main/resources/consumer/consumer.xml路径下。如下所示,修改为自己的配置:
- <bean id="consumer" class="com.alibaba.ons.message.example.consumer.HttpMQConsumer">
- <!-- domain,请替换,从域名列表选择Topic所在region的域名 -->
- <property name="url" value="http://domain/message" />
- <!-- 阿里云身份验证码,请替换 -->
- <property name="accessKey" value="XXXXXX" />
- <!-- 阿里云身份验证密钥,请替换 -->
- <property name="secretKey" value="XXXXXX" />
- <!-- MQ控制台创建的Topic,请替换 -->
- <property name="topic" value="XXXXXX" />
- <!-- MQ控制台创建的Consumer ID,请替换 -->
- <property name="consumerId" value="XXXXXX" />
- </bean>
消息发送与接收 Demo
消息发送
运行 Demo 里的文件 TestHttpProducerApp.java ,该文件内容如下:
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("producer/producer.xml");
- HttpMQProducer producer = context.getBean(HttpMQProducer.class);
- // 发送定时消息: producer.send("msg", "tag", "key", startDeliverTime);
- if (producer.send("msg", "tag", "key")) {
- System.out.println("send message success");
- } else {
- System.out.println("send message failed");
- }
- context.close();
消息接收
特别说明
如果消息没有其他端消费接入(比如使用C++ TCP,JAVA TCP),建议优先接入MNS,MNS专为多语言消息服务。
MNS接入文档
运行 Demo 里面的 TestHttpConsumerApp.java 文件,该文件内容如下:
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("consumer/consumer.xml");
- HttpMQConsumer consumer = context.getBean(HttpMQConsumer.class);
- List<SimpleMessage> list = consumer.pull();
- if (list != null && list.size() > 0) {
- for (SimpleMessage simpleMessage : list) {
- System.out.println(simpleMessage);
- // 当消息处理成功后,需要进行delete,如果不及时delete将会导致重复消费此消息
- String msgHandle = simpleMessage.getMsgHandle();
- if (consumer.delete(msgHandle)) {
- System.out.println("delete success: " + msgHandle);
- } else {
- System.out.println("delete failed: " + msgHandle);
- }
- }
- }
- context.close();