rocketMQ的运行示例代码

rocketMQ的示例代码

 1 import com.alibaba.rocketmq.client.exception.MQBrokerException;
 2 import com.alibaba.rocketmq.client.exception.MQClientException;
 3 import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
 4 import com.alibaba.rocketmq.client.producer.SendResult;
 5 import com.alibaba.rocketmq.client.producer.SendStatus;
 6 import com.alibaba.rocketmq.common.message.Message;
 7 import com.alibaba.rocketmq.remoting.exception.RemotingException;
 8
 9 import java.util.concurrent.LinkedBlockingQueue;
10
11
12 public class ThreadMqProducer implements Runnable {
13     public static LinkedBlockingQueue queue = new LinkedBlockingQueue();
14     private DefaultMQProducer producer = new DefaultMQProducer("rmq-group");
15
16     public static void main(String[] args) {
17         ThreadMqProducer tpd = new ThreadMqProducer();
18         tpd.init();
19
20         Thread t1 = new Thread(tpd);
21         t1.setName("mq-thread");
22         t1.start();
23     }
24
25     public void init() {
26         producer.setNamesrvAddr("172.18.4.114:9876");
27         producer.setInstanceName("producer");
28
29         try {
30             producer.start();
31         } catch (MQClientException e) {
32             e.printStackTrace();
33         }
34     }
35
36     public void release() {
37         producer.shutdown();
38     }
39
40     public int send2MQ(String body) {
41         Message msg = new Message("TopicA-test", "TagA", body.getBytes());
42         SendResult sendResult;
43
44         try {
45             sendResult = producer.send(msg);
46
47             if (sendResult.getSendStatus() == SendStatus.SEND_OK) {
48                 return 0;
49             }
50         } catch (MQClientException e) {
51             // TODO Auto-generated catch block
52             e.printStackTrace();
53         } catch (RemotingException e) {
54             // TODO Auto-generated catch block
55             e.printStackTrace();
56         } catch (MQBrokerException e) {
57             // TODO Auto-generated catch block
58             e.printStackTrace();
59         } catch (InterruptedException e) {
60             // TODO Auto-generated catch block
61             e.printStackTrace();
62         }
63
64         return -1;
65     }
66
67     @Override
68     public void run() {
69         // TODO Auto-generated method stub
70         while (true) {
71             try {
72                 String body = queue.take();
73                 System.out.println(
74                     "take a message from queue... send notify to rocketmq!");
75                 send2MQ(body);
76             } catch (InterruptedException e) {
77                 // TODO Auto-generated catch block
78                 e.printStackTrace();
79             }
80         }
81     }
82 }
时间: 2024-10-08 15:06:36

rocketMQ的运行示例代码的相关文章

SkylineGlobe 支持火狐和谷歌浏览器的可运行示例代码

示例代码: <html> <head> <title>3dml的Feature对象选中和隐藏</title> <script type="text/javascript"> function LoadFly() { try { var sg = CreateSGObj(); //window.document.getElementById("sgworld"); sg.open("E:\\2014

微信小程序「官方示例代码」剖析【下】:运行机制

在上一篇<微信小程序「官方示例代码」浅析[上]>中,我们只是简单的罗列了一下代码,这一篇,让我们来玩点刺激的--就是看看IDE的代码,了解它是怎么运行的. 还好微信的开发团队在软件工程的实践还有待提高,我们才有机会可以深入了解他们的代码--真想建议他们看看Growth的第二部分,构建系统. 解压应用 首先你需要有下面的工具啦 Mac电脑 微信web开发者工具.app WebStorm / 其他编程器 或 IDE,最好可以支持重命名 首先,我们需要右键微信web开发者工具.app,然后显示包的内

微信Android SDK示例代码及运行方法

最近在研究微信SDK,无奈网上好使的教程太少,对于程序员来说最好的东西,一个是微信的开发文档,一个是微信SDK的范例代码.无奈文档小白很难看懂,范例代码又没有详细的解释,导致我折腾了好多天,现在有点眉目了,先记下来. 1.申请应用AppKey 微信的SDK要求应用的包名.签名的MD5.AppID严格对应,所以没有申请的应用是肯定无法使用的.申请了的应用如果这三个对不上,是无法使用的. ·包名,是应用建立时候的名称,你可以在AndroidManifest.xml文件的package项中找到 ·签名

如何实现在Windows上运行Linux程序,附示例代码

如何实现在Windows上运行Linux程序,附示例代码 微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理,而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器, 这个运行器在用户层实现, 原理和Bash On Windows不完全一样,比较接近Linux上的Wine. 示例程序完整的代码在github上, 地址是 https://github.com/30324

左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用

文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy2012Email:[email protected]qq:    1046011462 一.场景如果 如果有博客系统中须要实现例如以下功能: 系统中用户公布文章.改动文章.删除文章时,须要一些相关的操作须要运行. 公布文章后,给好友发送邮件通知.给用户加积分,对文章做全文索引. 改动文章后,给好友发送邮

java 线程、线程池基本应用示例代码回顾

package org.rui.thread; /** * 定义任务 * * @author lenovo * */ public class LiftOff implements Runnable { protected int countDown=10; private static int taskCount=0; private final int id=taskCount++; public LiftOff(){} public LiftOff(int countDown) { thi

AppCan移动应用开发平台新增9个超实用插件(内含示例代码)

使用AppCan平台进行移动开发,你所需要具备的是Html5+CSS +JS前端语言基础,此外,Hybrid混合模式应用还需结合原生语言对功能模块进行封装,对于没有原生基础的开发者,如何实现App里包括支付.界面布局.地图导航.IM等功能呢? 这里列出9个AppCan新插件,在使用AppCan平台进行移动开发时非常实用. 1. uexInAppPurchase iOS内部支付IAP插件:封装内部支付IAP相关操作. 方法说明: getProductList 得到产品列表方法 purchase 购

java 加入一个线程、创建有响应的用户界面 。 示例代码

javajava 加入一个线程.创建有响应的用户界面 . 示例代码 来自thinking in java 4 21章  部分代码  目录21.2.11 thinking in java 4免费下载:http://download.csdn.net/detail/liangrui1988/7580155 package org.rui.thread.concurrent; /** * 加入一个线程 * 一个线程可以在其他线程之上调用join()方法,其效果是等待一段时间直到第二个线程结束才继续执行

java 线程返回值,优先级,后台线程 示例代码

ava 线程返回值,休眠,优先级,后台线程  示例代码 package org.rui.thread.basic; import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Execu