rockmq activemq 多生产者者推送后返回什么信息,日历推送成功或者失败,是否被消费,消费是否成功。这些状态如何监控

查看: 174|回复: 4
IOS 日历推送,有现成最好或者懂原理
阅读权限30
在线时间 小时
结帖率: (0/1)
交易币定制软件
价格预算范围:
2000 - 4000
是否要源码:
定制帖有效时间:
超过此日期,表示此定制任务已过期
定制完成时间:
联系下单方
定制要求见帖子下方↓
如题。请加我QQ,具体QQ交流,论坛担保交易。
快捷通道: →
→ &&&【】论坛提醒:任何引诱私下交易、交付定金的接单方,不走担保的下单方,极有可能是骗子,谨防骗子,交易请走论坛担保!&&&&&&&&&&&&&&&(交易双方完全免服务费)&
阅读权限30
在线时间 小时
结帖率: (0/1)
阅读权限20
在线时间 小时
我能做!支持走论坛担保,楼主可将详细要求与我商谈。可使用站内短消息联系我,也可联系我QQ:
阅读权限90
在线时间 小时
结帖率: (1/1)
懂原理。写不出来。
阅读权限50
在线时间 小时
结帖率: (4/5)
您需要登录后才可以回帖
回帖并转播
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
Powered by查看: 174|回复: 4
IOS 日历推送,有现成最好或者懂原理
阅读权限30
在线时间 小时
结帖率: (0/1)
交易币定制软件
价格预算范围:
2000 - 4000
是否要源码:
定制帖有效时间:
超过此日期,表示此定制任务已过期
定制完成时间:
联系下单方
定制要求见帖子下方↓
如题。请加我QQ,具体QQ交流,论坛担保交易。
快捷通道: →
→ &&&【】论坛提醒:任何引诱私下交易、交付定金的接单方,不走担保的下单方,极有可能是骗子,谨防骗子,交易请走论坛担保!&&&&&&&&&&&&&&&(交易双方完全免服务费)&
阅读权限30
在线时间 小时
结帖率: (0/1)
阅读权限20
在线时间 小时
我能做!支持走论坛担保,楼主可将详细要求与我商谈。可使用站内短消息联系我,也可联系我QQ:
阅读权限90
在线时间 小时
结帖率: (1/1)
懂原理。写不出来。
阅读权限50
在线时间 小时
结帖率: (4/5)
您需要登录后才可以回帖
回帖并转播
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
Powered by新数据将可能从您的服务器推送到你的iphone什么意思?在苹果手机,设置,(日历,通讯录,邮箱,)_百度知道一 .安装运行ActiveMQ:
1.下载activemq
tar -xf apache-activemq-5.9.0-bin.tar.gz
[zcw@g1 ~]$ cd apache-activemq-5.9.0
[zcw@g1 apache-activemq-5.9.0]$ cd bin/
[zcw@g1 bin]$ activemq start
三种运行方式:
(1)普通启动 ./activemq start
(2)启动并指定日志文件 ./activemq
start &tmp/smlog
(3)后台启动方式nohup
./activemq start &/tmp/smlog
前两种方式下在命令行窗口关闭时或者ctrl+c时导致进程退出,采用后台启动方式则可以避免这种情况
管理后台为:
http://ip:8161/admin/
4.检查已经启动
&ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服务,执行以下命令以便检验是否已经成功启动ActiveMQ服务。
打开端口:nc -lp 61616 &
查看哪些端口被打开 netstat -anp
查看61616端口是否打开: netstat -an |
grep 61616
检查是否已经启动:
(1).查看控制台输出或者日志文件&
(2).直接访问activemq的管理页面:
如果开启方式是使用(1)或(2),则直接ctrl+c或者关闭对应的终端即可&
如果开启方式是(3),则稍微麻烦一点:&
先查找到activemq对应的进程:&
ps -ef | grep activemq&
然后把对应的进程杀掉,假设找到的进程编号为 168168&
kill 168168&
二.创建ActiveMQ的Eclipse项目并运行
1)P2P方式
到中心仓库(
http://search.maven.org/
)里面找到:activemq-core
&project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&net.datafans.exercise.rockmq&/groupId&
&artifactId&TestJMS&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&packaging&jar&/packaging&
&name&TestJMS&/name&
&url&http://maven.apache.org&/url&
&properties&
&project.build.sourceEncoding&UTF-8&/project.build.sourceEncoding&
&/properties&
&dependencies&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&3.8.1&/version&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&org.apache.activemq&/groupId&
&artifactId&activemq-core&/artifactId&
&version&5.7.0&/version&
&/dependency&
&/dependencies&
&/project&
package net.datafans.exercise.rockmq.TestJMS;
import javax.jms.C
import javax.jms.ConnectionF
import javax.jms.DeliveryM
import javax.jms.D
import javax.jms.MessageP
import javax.jms.S
import javax.jms.TextM
import org.apache.activemq.ActiveMQC
import org.apache.activemq.ActiveMQConnectionF
public class Sender {
private static final int SEND_NUMBER = 5;
public static void main(String[] args) {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionF
// Connection :JMS 客户端到JMS Provider 的连接
Connection connection = null;
// Session: 一个发送或接收消息的线程
// Destination :消息的目的地;消息发送给谁.
// MessageProducer:消息发送者
// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://ip:61616");
// 构造从工厂得到连接对象
connection = connectionFactory.createConnection();
connection.start();
// 获取操作连接
session = connection.createSession(Boolean.TRUE,
Session.AUTO_ACKNOWLEDGE);
// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
destination = session.createQueue("FirstQueue");
// 得到消息生成者【发送者】
producer = session.createProducer(destination);
// 设置不持久化,此处学习,实际根据项目决定
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// 构造消息,此处写死,项目就是参数,或者方法获取
sendMessage(session, producer);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != connection)
connection.close();
} catch (Throwable ignore) {
public static void sendMessage(Session session, MessageProducer producer)
throws Exception {
for (int i = 1; i &= SEND_NUMBER; i++) {
TextMessage message = session
.createTextMessage("ActiveMq 发送的消息" + i);
// 发送消息到目的地方
System.out.println("发送消息:" + "ActiveMq 发送的消息" + i);
producer.send(message);
Receiver:
package net.datafans.exercise.rockmq.TestJMS;
import javax.jms.C
import javax.jms.ConnectionF
import javax.jms.D
import javax.jms.MessageC
import javax.jms.S
import javax.jms.TextM
import org.apache.activemq.ActiveMQC
import org.apache.activemq.ActiveMQConnectionF
public class Receiver {
public static void main(String[] args) {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionF
// Connection :JMS 客户端到JMS Provider 的连接
Connection connection = null;
// Session: 一个发送或接收消息的线程
// Destination :消息的目的地;消息发送给谁.
// 消费者,消息接收者
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://ip:61616");
// 构造从工厂得到连接对象
connection = connectionFactory.createConnection();
connection.start();
// 获取操作连接
session = connection.createSession(Boolean.FALSE,
Session.AUTO_ACKNOWLEDGE);
// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
destination = session.createQueue("FirstQueue");
consumer = session.createConsumer(destination);
while (true) {
//设置接收者接收消息的时间,为了便于测试,这里谁定为100s
TextMessage message = (TextMessage) consumer.receive(100000);
if (null != message) {
System.out.println("收到消息" + message.getText());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != connection)
connection.close();
} catch (Throwable ignore) {
测试过程:
&2)Pub/Sub模式
package net.datafans.exercise.rockmq.TestJMS;
import javax.jms.C
import javax.jms.ConnectionF
import javax.jms.DeliveryM
import javax.jms.D
import javax.jms.MessageP
import javax.jms.S
import javax.jms.TextM
import javax.jms.T
import org.apache.activemq.ActiveMQC
import org.apache.activemq.ActiveMQConnectionF
public class Pub {
private static final int SEND_NUMBER = 5;
public static void main(String[] args) {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionF
// Connection :JMS 客户端到JMS Provider 的连接
Connection connection = null;
// Session: 一个发送或接收消息的线程
// Destination :消息的目的地;消息发送给谁.
// MessageProducer:消息发送者
// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://ip:61616");
// 构造从工厂得到连接对象
connection = connectionFactory.createConnection();
connection.start();
// 获取操作连接
session = connection.createSession(Boolean.TRUE,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("MessageTopic");
producer = session.createProducer(topic);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
TextMessage message = session.createTextMessage();
message.setText("message_hello_chenkangxian");
producer.send(message);
// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
destination = session.createQueue("FirstQueue");
// 得到消息生成者【发送者】
producer = session.createProducer(destination);
// 设置不持久化,此处学习,实际根据项目决定
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// 构造消息,此处写死,项目就是参数,或者方法获取
sendMessage(session, producer);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != connection)
connection.close();
} catch (Throwable ignore) {
public static void sendMessage(Session session, MessageProducer producer)
throws Exception {
for (int i = 1; i &= SEND_NUMBER; i++) {
TextMessage message = session
.createTextMessage("ActiveMq 发送的消息" + i);
// 发送消息到目的地方
System.out.println("发送消息:" + "ActiveMq 发送的消息" + i);
producer.send(message);
package net.datafans.exercise.rockmq.TestJMS;
import javax.jms.C
import javax.jms.ConnectionF
import javax.jms.D
import javax.jms.JMSE
import javax.jms.M
import javax.jms.MessageC
import javax.jms.MessageL
import javax.jms.S
import javax.jms.TextM
import javax.jms.T
import org.apache.activemq.ActiveMQC
import org.apache.activemq.ActiveMQConnectionF
public class Sub {
public static void main(String[] args) {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionF
// Connection :JMS 客户端到JMS Provider 的连接
Connection connection = null;
// Session: 一个发送或接收消息的线程
// Destination :消息的目的地;消息发送给谁.
// 消费者,消息接收者
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://ip:61616");
// 构造从工厂得到连接对象
connection = connectionFactory.createConnection();
connection.start();
// 获取操作连接
session = connection.createSession(Boolean.TRUE,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("MessageTopic");
consumer = session.createConsumer(topic);
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
// TODO Auto-generated method stub
TextMessage tm = (TextMessage)
System.out.println(tm.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
destination = session.createQueue("FirstQueue");
consumer = session.createConsumer(destination);
while (true) {
//设置接收者接收消息的时间,为了便于测试,这里谁定为100s
TextMessage message = (TextMessage) consumer.receive(100000);
if (null != message) {
System.out.println("收到消息" + message.getText());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != connection)
connection.close();
} catch (Throwable ignore) {
PS:代码都写出来了只是不知道为啥测试Pub/Sub模式一直都出不来&
3.Request和Reply模式
* @author mike
* @date Apr 17, 2014
package net.datafans.exercise.rockmq.TestJMS;
class CONFIG {
public static final java.lang.String AUTHOR = "Mike Tang";
public static final java.lang.String QUEUE_NAME = "REQUEST AND REPLY";
public static void introduce() {
java.lang.StringBuilder builder = new java.lang.StringBuilder();
builder.append("This is a simple example to show how to write a \n");
builder.append("request and reply pattern program with Apache ActiveMQ.\n");
builder.append("which is not support such pattern.\n\n");
builder.append("
-------- By Mike Tang\n");
builder.append("
at Soochow University\n");
System.out.println(builder.toString());
public static void introduceServer() {
System.out.println("Wait for the client send messages, and you will see something");
public static void introduceClient() {
System.out.println("Input something and ENTER, you will get the reply.\n"
+ "and input 'exit' stop the program.");
MessageClient
package net.datafans.exercise.rockmq.TestJMS;
import java.util.S
import java.util.UUID;
import javax.jms.C
import javax.jms.DeliveryM
import javax.jms.D
import javax.jms.JMSE
import javax.jms.M
import javax.jms.MessageC
import javax.jms.MessageL
import javax.jms.MessageP
import javax.jms.S
import javax.jms.TemporaryQ
import javax.jms.TextM
import org.apache.activemq.ActiveMQConnectionF
public class MessageClient {
static Session
static MessageConsumer consumer
static MessageProducer producer
static TemporaryQueue
temporaryQueue = null;
public void setURL(String brokerurl) {
this.brokerurl =
public void start() throws JMSException {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerurl);
Connection connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(CONFIG.QUEUE_NAME);
temporaryQueue = session.createTemporaryQueue();
producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
consumer = session.createConsumer(temporaryQueue);
consumer.setMessageListener(new MMessageListener());
public void request(String request) throws JMSException {
System.out.println("REQUEST TO : " + request);
TextMessage textMessage = session.createTextMessage();
textMessage.setText(request);
textMessage.setJMSReplyTo(temporaryQueue);
textMessage.setJMSCorrelationID(UUID.randomUUID().toString());
MessageClient.producer.send(textMessage);
private static class MMessageListener implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
String messageText = ((TextMessage) message).getText();
System.out.println("REPLY FROM : " + messageText.toUpperCase());
} catch (JMSException e) {
e.printStackTrace();
// -----------------------------------------------------------------------
public static void main(String[] args) {
CONFIG.introduce();
CONFIG.introduceClient();
MessageClient client = new MessageClient();
client.setURL("tcp://ip:61616");
Scanner scanner = new Scanner(System.in);
client.start();
System.out.println("-----------------------------------------");
System.out.println("|
Client Start!
System.out.println("-----------------------------------------");
String message = "";
int i = 0;
while (!(message = scanner.next()).equals("exit")) {
client.request(message + " : " + i++);
scanner.close();
} catch (JMSException e) {
e.printStackTrace();
MessageServer
package net.datafans.exercise.rockmq.TestJMS;
import javax.jms.C
import javax.jms.DeliveryM
import javax.jms.D
import javax.jms.JMSE
import javax.jms.M
import javax.jms.MessageC
import javax.jms.MessageL
import javax.jms.MessageP
import javax.jms.S
import javax.jms.TextM
import org.apache.activemq.ActiveMQConnectionF
import org.apache.activemq.broker.BrokerS
public class MessageServer {
static BrokerService
brokerService = null;
static MessageConsumer consumer
static MessageProducer producer
static Session
public void setURL(String brokerurl) {
this.brokerurl =
public void start() throws JMSException {
createBroker(brokerurl);
setConsumer(brokerurl);
public void createBroker(String brokerurl) {
brokerService = new BrokerService();
brokerService.setUseJmx(false);
brokerService.setPersistent(false);
brokerService.addConnector(brokerurl);
brokerService.start();
} catch (Exception e) {
e.printStackTrace();
public void setConsumer(String url) throws JMSException {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
Connection connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(CONFIG.QUEUE_NAME);
producer = session.createProducer(null);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
consumer = session.createConsumer(destination);
consumer.setMessageListener(new MMessageListener());
private static class MMessageListener implements MessageListener {
public void onMessage(Message message) {
TextMessage response = session.createTextMessage();
if (message instanceof TextMessage) {
String messageText = ((TextMessage) message).getText();
response.setText(handleMessage(messageText));
System.out.println("REQUEST FROM " + messageText.toUpperCase());
response.setJMSCorrelationID(message.getJMSCorrelationID());
producer.send(message.getJMSReplyTo(), response);
} catch (JMSException e) {
e.printStackTrace();
private String handleMessage(String text) {
return "RESPONSE TO " + text.toUpperCase();
// -----------------------------------------------------------------
public static void main(String[] args) {
CONFIG.introduce();
CONFIG.introduceServer();
MessageServer server = new MessageServer();
server.setURL("tcp://ip:61616");
server.start();
System.out.println("-----------------------------------------");
System.out.println("|
Server Start!
System.out.println("-----------------------------------------");
} catch (JMSException e) {
e.printStackTrace();
阅读(...) 评论()ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确?
由于完全没接触过这方面所以着急忙慌的看了两天文档,有了以下的思考,想请教下前辈我想得是否正确,我好及时纠正,因为项目启动的比较急我却还不会什么。ActiveMQ是一个Java API标准,基于JMS,可以实现【点到点】、【订阅/发送】两种消息机制,涉及到推送的话用的就是后者,即【订阅/发送】,而且由于MQTT的各种优点,向Android推送时选择使用该协议,有各种对该协议的实现,如wmqtt.jar或mqttv3.jar,它们实现了MQTT协议,同时作为Message Broker(消息代理)来与ActiveMQ进行通信,也就是说服务端有什么需要推送的信息,使用ActiveMQ加入Topic就可以了,然后由MQTT的实现将消息发送给Android(ActiveMQ的实现放在服务端,MQTT的实现放在手机端)是这样的流程吗?请指正,下周就开工了,我完蛋了=。=
ActiveMQ 这个也没有研究过,最近打算弄个聊天所以也看了下MQTT,不过也是一头雾水,看到有些人是使用 Mosquitto: 做的(broker)代理,好像这个更简单一点儿,还有的是用:如果你只是需要推送功能的话,可以使用第三方的推送试试,比如极光,百度等,有好多的我的理解是:MQTT他只是定义了一种通讯协议,给我们封装好了一些socket连接,让我们方便调用,像 Mosquitto 和ActiveMQ只是基于这个协议实现的代理,而wmqtt.jar 是在移动端实现接收和发送消息的接口供我们调用!我所了解的也就这么多,不知道能不能帮到你
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 rockmq 安装 的文章

 

随机推荐