1.生產者
//連線工廠
connectionfactory connfactory = new activemqconnectionfactory(
activemqconnection.default_user,
activemqconnection.default_password,
"tcp://localhost:61616");
//連線到jms提供者
connection conn = connfactory.createconnection();
conn.start();
//事務性會話,自動確認訊息
session session = conn.createsession(true, session.auto_acknowledge);
//訊息的目的地
destination destination = session.createqueue("queue.hello");
//訊息生產者
messageproducer producer = session.createproducer(destination);
producer.setdeliverymode(deliverymode.non_persistent); //不持久化
//文字訊息
textmessage textmessage = session.createtextmessage("文字訊息");
producer.send(textmessage);
//鍵值對訊息
mapmessage mapmessage = session.createmapmessage();
mapmessage.setlong("age", new long(32));
mapmessage.setdouble("sarray", new double(5867.15));
mapmessage.setstring("username", "鍵值對訊息");
producer.send(mapmessage);
//流訊息
streammessage streammessage = session.createstreammessage();
streammessage.writestring("streammessage流訊息");
streammessage.writelong(55);
producer.send(streammessage);
//位元組訊息
string s = "bytesmessage位元組訊息";
bytesmessage bytesmessage = session.createbytesmessage();
bytesmessage.writebytes(s.getbytes());
producer.send(bytesmessage);
//物件訊息
user user = new user("cjm", "物件訊息"); //user物件必須實現serializable介面
objectmessage objectmessage = session.createobjectmessage();
objectmessage.setobject(user);
producer.send(objectmessage);
session.commit(); //在事務性會話中,只有commit之後,訊息才會真正到達目的地
producer.close();
session.close();
conn.close();
2.消費者
public class receiver implements messagelistener
session.commit();
consumer.close();
session.close();
conn.close(); }
public void onmessage(message m) else if(m instanceof mapmessage)else if(m instanceof streammessage)else if(m instanceof bytesmessage)
}else if(m instanceof objectmessage)else
stop = true;
}catch(jm***ception e)
}}
ActiveMQ訊息傳送模型
無論採用哪種jms 元件,jms 支援兩種截然不同的訊息傳送模型 ptp 即點對點模型 和pub sub 即發布 訂閱模型 分別稱作 ptp domain 和pub sub domain。ptp 使用queue即佇列目標 訊息從乙個生產者傳送至乙個消費者。在此傳送模型中,目標是乙個佇列。訊息首先被傳...
ActiveMQ非同步傳送訊息
非同步傳送 tcp localhost 61616?jms.useasyncsend true 從 activemq 5 開始可以控制非同步傳送流。也就是說,在受到 broker 的確認應答之前,生產者能夠傳送訊息給 broker 的最大資訊量。即使是非同步傳送訊息,生產者也是在收到 broker ...
ActiveMQ訊息傳送模型
無論採用哪種jms 元件,jms 支援兩種截然不同的訊息傳送模型 ptp 即點對點模型 和pub sub 即發布 訂閱模型 分別稱作 ptp domain 和pub sub domain。ptp 使用queue即佇列目標 訊息從乙個生產者傳送至乙個消費者。在此傳送模型中,目標是乙個佇列。訊息首先被傳...