ActivityMQ实现生产者和消费者
来源:互联网 发布:淘宝嘉年华是什么活动 编辑:程序博客网 时间:2024/05/16 23:36
生产者:
public class Producer {
//默认连接用户名
private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
//默认连接密码
private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
//默认连接地址:tcp://localhost:61616
private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;
//发送的消息数量
private static final int SENDNUM = 10;
public static void main(String[] args) {
//连接工厂,JMS 用它创建连接
ConnectionFactory connectionFactory;
//连接,JMS 客户端到JMS Provider 的连接
Connection connection = null;
//会话: 一个发送或接收消息的线程
Session session;
//消息的目的地;消息发送给谁
Destination destination;
//消息生产者
MessageProducer messageProducer;
//实例化连接工厂
connectionFactory = new ActiveMQConnectionFactory(Producer.USERNAME, Producer.PASSWORD, Producer.BROKEURL);
try {
//通过连接工厂获取连接
connection = connectionFactory.createConnection();
//启动连接
connection.start();
//创建session
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
//创建一个名称为HelloWorld的消息队列
destination = session.createQueue("HelloWorld");
//创建消息生产者
messageProducer = session.createProducer(destination);
//发送消息
sendMessage(session, messageProducer);
session.commit();
}catch (Exception e) {
e.printStackTrace();
}finally{
if(connection != null){
try {
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
/**
* 发送消息
* @param session
* @param messageProducer 消息生产者
* @throws Exception
*/
public static void sendMessage(Session session,MessageProducer messageProducer) throws Exception{
for (int i = 0; i < Producer.SENDNUM; i++) {
//创建一条文本消息
TextMessage message = session.createTextMessage("ActiveMQ 发送消息" +i);
System.out.println("发送消息:Activemq 发送消息" + i);
//通过消息生产者发出消息
messageProducer.send(message);
}
}
}
消费者:
public class Consumer {
//默认连接用户名
private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
//默认连接密码
private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
//默认连接地址
private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;
public static void main(String[] args) {
ConnectionFactory connectionFactory;//连接工厂
Connection connection = null;//连接
Session session;//会话 接受或者发送消息的线程
Destination destination;//消息的目的地
MessageConsumer messageConsumer;//消息的消费者
//实例化连接工厂
connectionFactory = new ActiveMQConnectionFactory(Consumer.USERNAME, Consumer.PASSWORD, Consumer.BROKEURL);
try {
//通过连接工厂获取连接
connection = connectionFactory.createConnection();
//启动连接
connection.start();
//创建session
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建一个连接HelloWorld的消息队列
destination = session.createQueue("HelloWorld");
//创建消息消费者
messageConsumer = session.createConsumer(destination);
while (true) {
//设置接收者接收消息的时间,为了便于测试,这里定为100s
TextMessage textMessage = (TextMessage) messageConsumer.receive(100000);
if(textMessage != null){
System.out.println("收到的消息:" + textMessage.getText());
}else {
break;
}
}
}catch (Exception e) {
e.printStackTrace();
}finally{
if(connection != null){
try {
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
}
- ActivityMQ实现生产者和消费者
- Java 实现生产者和消费者
- 生产者和消费者Java实现
- 生产者和消费者线程实现
- 用java实现生产者和消费者问题
- 生产者和消费者实现(Java)
- Java实现生产者和消费者问题
- Lock锁 实现生产者和消费者问题
- 用java实现生产者和消费者问题
- 生产者和消费者多线程同步,C++实现
- 生产者和消费者问题的Java实现
- 生产者和消费者信号灯实现 N-1
- Synchroniazed和Lock实现生产者--消费者
- synchronized和ReentrantLock实现消费者生产者问题
- 线程实现消费者和生产者机制
- 用共享内存实现生产者和消费者
- java 实现kafka消息生产者和消费者
- 使用BlockingQueue实现生产者和消费者模型
- stdlib.h和stdio.h的区别
- 本周预告
- mybatis中批量删除
- examTP-A_A12_2
- JSP实现添加分类、查询分类
- ActivityMQ实现生产者和消费者
- 发送支持手表的notification,然后再notification 里面语音回复
- Glide源码解析05-onLoadComplete
- Glide源码解析06-Glide流程图
- TomCat的配置和使用
- PAT1060 爱丁顿数(25)
- 执行yun安装时/var/run/yum.pid 已被锁定,PID 为 *** 的另一个程序正在运行。
- 173. Binary Search Tree Iterator
- Spring注解的默认 bean 的 id