ActiveMQ五種訊息的傳送 接收

2021-10-09 05:21:31 字數 2256 閱讀 3848

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即佇列目標 訊息從乙個生產者傳送至乙個消費者。在此傳送模型中,目標是乙個佇列。訊息首先被傳...