jms的俩种模式
package com.jiangchong.job; import java.util.Date; import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic; import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue; public class JMS
{ public static void main(String[] args) throws Exception
{
consume();
product();
} public static void product() throws JMSException
{
// "tcp://localhost:61616"
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"vm:localhost:10000");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("testTopic");
MessageProducer producer = session.createProducer(topic);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
while (true)
{
TextMessage message = session.createTextMessage();
message.setText("message_" + new Date().toLocaleString());
producer.send(message);
try
{
Thread.sleep( * );
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
} public static void consume() throws JMSException
{
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"vm:localhost");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("testTopic");
MessageConsumer consumer = session.createConsumer(topic);
consumer.setMessageListener(new MessageListener()
{
public void onMessage(Message message)
{
TextMessage tm = (TextMessage) message;
try
{
System.out.println("Received message: " + tm.getText());
}
catch (JMSException e)
{
e.printStackTrace();
}
}
});
} public static void p2p() throws JMSException
{
ConnectionFactory factory = new ActiveMQConnectionFactory(
"vm://localhost"); Connection connection = factory.createConnection();
connection.start(); Queue queue = new ActiveMQQueue("testQueue"); final Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
final Message message = session.createTextMessage(new Date()
.toLocaleString() + " Hello JMS! come from producer"); final MessageProducer producer = session.createProducer(queue);
new Thread(new Runnable()
{ public void run()
{
while (true)
{
try
{
producer.send(message);
}
catch (JMSException e)
{
e.printStackTrace();
}
try
{
Thread.sleep( * );
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }).start(); final MessageConsumer comsumer = session.createConsumer(queue);
new Thread(new Runnable()
{ public void run()
{
while (true)
{
Message recvMessage;
try
{
recvMessage = comsumer.receive();
System.out.println(((TextMessage) recvMessage)
.getText() + " rec");
}
catch (JMSException e)
{
e.printStackTrace();
}
try
{
Thread.sleep( * 1000L);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}).start();
} }
jms的俩种模式的更多相关文章
- 消息队列:快速上手ActiveMQ消息队列的JMS方式使用(两种模式:Topic和Queue的消息推送和订阅)
1.实现功能 希望使用一套API,实现两种模式下的消息发送和接收功能,方便业务程序调用 1.发送Topic 2.发送Queue 3.接收Topic 4.接收Queue 2.接口设计 根据功能设计公共调 ...
- JMS是一种应用于异步消息传递的标准API
JMS是一种应用于异步消息传递的标准API,作为Java平台的一部分,JMS可以允许不同应用.不同模块之间实现可靠.异步数据通信.一些概念 JMS provider An implementat ...
- javascript 创建对象的7种模式
使用字面量方式创建一个 student 对象: var student = function (){ name : "redjoy", age : 21, sex: women, ...
- javascript面向对象系列第二篇——创建对象的5种模式
× 目录 [1]字面量 [2]工厂模式 [3]构造函数[4]原型模式[5]组合模式 前面的话 如何创建对象,或者说如何更优雅的创建对象,一直是一个津津乐道的话题.本文将从最简单的创建对象的方式入手,逐 ...
- javascript创建对象的几种模式
在js中有几种模式可以创建对象,通过对象操作所包含的属性与方法. 一般来说,构造函数名称的第一个字母为大写字母,非构造函数名称的第一个字母为小写字母,当然,构造函数与一般函数唯一的区别只是调用的方式不 ...
- SQL Server 2012复制教程以及复制的几种模式
简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...
- git push :推送本地更改到远程仓库的三种模式
摘要:由于在git push过程中,no-fast-forward 的push会被拒绝,如何解决git push失败的问题?这里面有三种方法,分别会形成merge形式的提交历史,线性形式的提交历史,覆 ...
- App开发三种模式
APP开发三种模式 现在App开发的模式包含以下三种: Native App 原生开发AppWeb App 网页AppHybrid App 混合原生和Web技术开发的App 详细介绍: http:// ...
- [转]VMware Workstation网络连接的三种模式
经常要使用VMWare Workstation来在本地测试不同的操作系统,以前也搞不清楚网络连接三种模式,最近看了几篇文章才算明白.现总结如下: 1. VMware Workstation的虚拟网络组 ...
随机推荐
- CSS code
body{ background-color: #1b1919; background-image: url(); } #blog_nav_rss, #blog_nav_rss_image{ disp ...
- Web 应用程序中的安全向量 – ASP.NET MVC 4 系列
Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施. 威胁:跨站脚本 ...
- u-boot-2010.09移植(B)
前面我们的u-boot只是在内存中运行,要想在nandflash中运行,以达到开机自启的目的,还需作如下修改 一.添加DM9000网卡支持 1.修改board/fl2440/fl2440.c中的boa ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:5.安装Oracle RAC FAQ-RAC安装DB软件runInstaller看不到节点
集群安装正常: [root@kmdbrac1 ~]# crs_stat -t -v Name Type R/RA F/FT Target State Host -------------------- ...
- Android开发中经常使用的Content-Type简介
1.application/x-www-form-urlencoded:最常使用的类型(默认也是这种类型),主要用于提交不带文件的post数据. 2.multipart/form-data:需要结合b ...
- Rails 之微信开发 : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
微信公众平台,使用Ruby On Rails + Win7 在取得OpenID时,如果简单的使用http.get方法,会出现如下 SSL_connect returned=1 errno=0 stat ...
- 将JSON格式的时间/Date(2367828670431)/格式 转为正常的年-月-日 格式
function formatDate(NewDtime) var dt = new Date(parseInt(NewDtime.slice(6, 19))); var year = dt.getF ...
- Ubuntu 16.04中安装Chromium浏览器
引用:http://www.linuxidc.com/Linux/2016-05/131097.htm 通过ppa,安装最新版本的Chromium浏览器 sudo add-apt-repository ...
- Laravel项目目录结构说明
Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...
- 一种扩大View点击范围的方法
Rect rect = new Rect();mBt0.getHitRect(rect); rect.bottom += 400; TouchDelegate touchDelegate = new ...