『壹』 ActiveMQ怎么实现两台服务器之间的通讯。比如A发消息给B,B能收到。具体的代码和配置。
公共静态无效的主要(字串[] args)抛出那么JMSException {
字符串URL =“TCP :/ /本地主机:61616;
ActiveMQConnectionFactory的connectionFactory =:新ActiveMQConnectionFactory(
); / /设置的用户名和密码,用户名和密码的conf目录credentials.properties的文件也可以被配置在activemq.xml
connectionFactory.setUserName“(”系统“);
”的connectionFactory setPassword( “经理人”);创建
/ /创建一个连接,
接口连接connectionFactory.createConnection();
connection.start的();
会话连接。会议上的(假Session.CLIENT_ACKNOWLEDGE);
/ /创建目标,创建一个主题,你也可以创建一个队列的
目的地的的的目标session.createQueue(“1230”); ...... /> / /创建一个消息消费者
MessageProcer:制造商的目标:= session.createProcer();
procer.setDeliveryMode(DeliveryMode.PERSISTENT);
字符串JMSCorrelationID “'S +”1001“+”'“;
”的MessageConsumer:消费者session.createConsumer(目标),选择
TextMessage的TM = session.createTextMessage(12345111);
TM。 setJMSCorrelationID(1001“);
procer.send(TM);
TextMessage的(真实){
TM1 =(TextMessage的介质)consumer.receive(1000);
(null! ,TM1){
System.out.println(TM1);
tm1.acknowledge();
System.out.println(tm1.getText());
}
突破;
}
consumer.close();
procer.close();
session.close(); BR />连接关闭();}
}
『贰』 ActiveMQ关于文件传输需要注意哪些方面
具体参考下吧,MQException 该类包含WebSphere MQ 完成代码和错误代码常量的定义。以MQCC_开始的常量是WebSphere MQ 完成代码,而以MQRC_开始的常量则是WebSphere MQ 原因代码。只要出现WebSphere MQ 错误,就会给出MQException。 MQGetMessageO...
『叁』 activemq问题
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProcer;
import javax.jms.Session;
import javax.jms.TextMessage;
jms.jar
==============================================
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
activemq-all-5.2.0.jar
『肆』 如何利用MQ实现大文件传输和交换具有可靠,安全
由于JMS Streams的种种不足,限制了其用于传输大文件的功能。因此,ActiveMQ在JMS的基础上创建了一种新的消息类型------BlobMessage。
因为派生与JMS的Message对象,通过BlobMessage传输大文件可以利用ActiveMQ消息Broker的所有特性,如高可靠性、事务支持、发布订阅......
Blob Messages是通过带外传输(out-of-band transport)的机制来实现大文件传输的,在文件传输的过程中,通过http、ftp、scp或其他点对点的协议来进行文件的传输,同时,通过BlobMessage来传送控制信息以及文件的验证信息。其结构图如下:
由于JMS可以可靠的将控制信息传送到ActiveMQ Broker,同时ftp协议本身就支持断点续传,所以,文件简单的就可以发送到服务端,并且保存在服务端,当文件的消费端监听队列的队列就可以轻松的下载文件了,如果存在多个消费端,则可以通过JMS的发布订阅模式实现。
通过比较三种方案,第一种通过JMS Streams传输存在断点续传的问题,第二种方式则引入了额外的复杂度------分割文件和合并文件,复杂度相对较高,第三种Blob Messages对于开发者来说就和发送普通消息是一样的,只是服务端它依赖FTP Server来上传下载文件。经过比较可以发现,Blob Messages的方式更具备可用性。
『伍』 ActiveMQ关于文件传输需要注意哪些方面
最近一直在关注一些文件传输中间件的实现,想用ActiveMQ实现一些具体的功能。经过几周的ActiveMQ的学习,以及中间件必须一些功能。发现一些问题自己还是不能搞懂,希望网上一些,大牛拍一下砖,支持一下。
1.在消息中间件的消息的路由的算法怎么实现的。
如A、B、C、D、E 五个节点上都是提供消息服务的 AMQ ,五个节点连通成一个网络,连接到 A
节点的客户端可以发消息到五个节点中的任意一个节点,AMQ 会自动寻找一条最佳路径传递消息到目标节点。如从A
发消息到D,有两条连通路径:A->B->C->D 和A->E->D,其中 A->E->D
经过的节点最少,该路径为最佳路径, AMQ 将根据此路径对消息进行传递。
『陆』 如何将list传给activemq
ActiveMQ Getting Start 介绍 这是描述如何安装和配置ActiveMQ 4.x/5.x在Unix和windows平台的说明文档。 文档结构 介绍 文档结构 安装前的准备 window平台安装 二进制文件安装 源码安装 开发版本 Unix平台安装 二进制文件安装 源码安装 开发版本...
『柒』 请教java怎么向activemq发送消息
一.Prop类(用来读取属性文件,单例)
package com.sitinspring.standardWeblogicJms;
import java.io.FileInputStream;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
public class Props {
private static final String File_Name = "jmsSetting.properties";
private static Properties propts;
public static void makeProptsInstance() {
propts = new Properties();
try {
propts.load(new FileInputStream(File_Name));
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static String get(String name){
if(propts==null){
makeProptsInstance();
}
return (String)propts.get(name);
}
@SuppressWarnings("unchecked")
public static Context getInitialContext(){
Context context=null;
String jndiFactory=Props.get("jndi.factory");
String providerUrl=Props.get("jndi.provider.url");
Hashtable env=new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, jndiFactory);
env.put(Context.PROVIDER_URL, providerUrl);
try {
context=new InitialContext(env);
} catch (Exception ex) {
ex.printStackTrace();
}
return context;
}
}
二.QueueBase类(QueueComsumer和QueueSupplier的基类,用于归纳一些两类共通的东西)
package com.sitinspring.standardWeblogicJms;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
public class QueueBase{
protected QueueConnectionFactory queueConnectionFactory;
protected QueueConnection queueConnection;
protected QueueSession queueSession;
protected Queue queue;
public QueueBase(Context context){
try{
String jmsFactory=Props.get("jms.factory");
queueConnectionFactory=(QueueConnectionFactory)context.lookup(jmsFactory);
queueConnection=queueConnectionFactory.createQueueConnection();
queueSession=queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
String queueName=Props.get("queue.name");
queue=(Queue)context.lookup(queueName);
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
三.QueueComsumer类(用于接收消息)
package com.sitinspring.standardWeblogicJms;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.QueueReceiver;
import javax.jms.TextMessage;
import javax.naming.Context;
public class QueueComsumer extends QueueBase implements MessageListener {
private QueueReceiver queueReceiver;
public QueueComsumer(Context context) {
super(context);
try {
queueReceiver = queueSession.createReceiver(queue);
queueReceiver.setMessageListener(this);
queueConnection.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage txtmsg = (TextMessage) message;
try {
System.out.println("I have received the TextMassage:"
+ txtmsg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
public void close() throws JMSException {
queueReceiver.close();
queueSession.close();
queueConnection.close();
}
public static void main(String[] args) {
Context context = Props.getInitialContext();
QueueComsumer queueComsumer = new QueueComsumer(context);
synchronized (queueComsumer) {
while (true) {
try {
queueComsumer.wait();
} catch (InterruptedException interruptedException) {
interruptedException.printStackTrace();
try {
queueComsumer.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
}
}
四.QueueSupplier类(用于发送消息)
package com.sitinspring.standardWeblogicJms;
import javax.jms.JMSException;
import javax.jms.QueueSender;
import javax.jms.TextMessage;
import javax.naming.Context;
public class QueueSupplier extends QueueBase {
private QueueSender queueSender;
public QueueSupplier(Context context) {
super(context);
try {
queueSender = queueSession.createSender(queue);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void sendMsg(String msg) throws JMSException {
TextMessage txtMsg = queueSession.createTextMessage();
txtMsg.setText(msg);
queueConnection.start();
queueSender.send(txtMsg);
}
public void close() throws JMSException {
queueSender.close();
queueSession.close();
queueConnection.close();
}
public static void main(String[] args) {
Context context = Props.getInitialContext();
QueueSupplier queueSupplier = new QueueSupplier(context);
try {
queueSupplier.sendMsg("Hello World");
System.out.println("A message have been sent!");
} catch (JMSException ex) {
ex.printStackTrace();
} finally {
try {
queueSupplier.close();
} catch (JMSException ex) {
ex.printStackTrace();
}
}
}
}