日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

activemq端口怎么調(diào) activemq詳解

一、下載與安裝
直接去官網(wǎng)(
http://activemq.apache.org/)下載最新版本即可,由于這是免安裝的,只需要解壓就行了 。安裝完之后進入bin目錄,雙擊 activemq.bat文件(linux下在bin目錄下執(zhí)行 activemq start)
二、訪問控制臺
在瀏覽器輸入:http://ip:8161/admin/,出現(xiàn)如下界面表示啟動成功,默認的用戶名密碼都是admin

activemq端口怎么調(diào) activemq詳解


三、修改端口號
61616為對外服務(wù)端口號
8161為控制器端口號
當端口號沖突時,可以修改這兩個端口號 。cd conf ,修改activemq.xml 修改里面的61616端口 。修改jetty.xml,修改里面的8161端口 。
queue隊列模式:
【activemq端口怎么調(diào) activemq詳解】和rabbitmq簡單隊列模式一樣,若是有多個消費者消費同一個隊列中的消息的話,默認也是輪詢機制的消費
示例代碼:
public class Productor {public static final String BORKER_URL = "tcp://127.0.0.1:61616";public static final String QUEUE_NAME = "queue1";public static void main(String[] args) throws JMSException {//創(chuàng)建工廠ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);//創(chuàng)建tcp連接Connection connection = factory.createConnection();//建立連接connection.start();/*** 創(chuàng)建會話,1.是否開啟事務(wù),2.簽收模式*/Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//創(chuàng)建隊列(消息的目的地)Queue queue = session.createQueue(QUEUE_NAME);//創(chuàng)建生產(chǎn)者MessageProducer producer = session.createProducer(queue);//消息非持久化producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//消息持久化 默認是持久化的//producer.setDeliveryMode(DeliveryMode.PERSISTENT);//創(chuàng)建消息TextMessage message = session.createTextMessage("你好嗎");//發(fā)送消息producer.send(message);producer.close();session.close();connection.close();System.out.println("發(fā)送成功!");}}public class Consumer {public static final String BORKER_URL = "tcp://127.0.0.1:61616";public static final String QUEUE_NAME = "queue1";public static void main(String[] args) throws JMSException {//創(chuàng)建工廠ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);//創(chuàng)建tcp連接Connection connection = factory.createConnection();//建立連接connection.start();/*** 創(chuàng)建會話,1.是否開啟事務(wù),2.簽收模式*/Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//創(chuàng)建/聲明隊列(消息的目的地)Queue queue = session.createQueue(QUEUE_NAME);//創(chuàng)建消費者MessageConsumer consumer = session.createConsumer(queue);/*while (true) {//receive會阻塞線程TextMessage message = (TextMessage)consumer.receive();System.out.println("接收到消息:" + message.getText());}*///監(jiān)聽的方式消費consumer.setMessageListener(message -> {TextMessage textMessage = (TextMessage)message;try {System.out.println("1號接收到消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}});}}topic隊列模式:
稱為發(fā)布訂閱模式,生產(chǎn)者把消息發(fā)送給訂閱給某個topic主題的消費者,是分發(fā)的模式,這種模式默認需要先啟動消費者,不然就算生產(chǎn)者發(fā)布了某個topic主題的消息,消費者也消費不了;除非消費者提前訂閱,并且做了消息持久化的處理,這樣后啟動消費者才能消費提前推送的消息 。
代碼:
public class Productor {public static final String BORKER_URL = "tcp://127.0.0.1:61616";public static final String TOPIC_NAME = "topic1";public static void main(String[] args) throws JMSException {//創(chuàng)建工廠ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);//異步投遞factory.setUseAsyncSend(true);//創(chuàng)建tcp連接Connection connection = factory.createConnection();/*** 創(chuàng)建會話,1.是否開啟事務(wù),2.簽收模式*/Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//創(chuàng)建/聲明topic(消息的目的地)Topic topic = session.createTopic(TOPIC_NAME);//創(chuàng)建生產(chǎn)者ActiveMQMessageProducer producer = (ActiveMQMessageProducer)session.createProducer(topic);//持久化producer.setDeliveryMode(DeliveryMode.PERSISTENT);//建立連接connection.start();//創(chuàng)建消息TextMessage message = session.createTextMessage("你好嗎");//發(fā)送消息,異步發(fā)送回調(diào)函數(shù)producer.send(message, new AsyncCallback() {@Overridepublic void onSuccess() {System.out.println("success");}@Overridepublic void onException(JMSException e) {System.out.println("fail");}});producer.close();session.close();connection.close();System.out.println("發(fā)送成功!");}}public class Consumer1 {public static final String BORKER_URL = "tcp://127.0.0.1:61616";public static final String TOPIC_NAME = "topic1";public static void main(String[] args) throws JMSException {//創(chuàng)建工廠ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);//創(chuàng)建tcp連接Connection connection = factory.createConnection();//制定clientIdconnection.setClientID("my");/*** 創(chuàng)建會話,1.是否開啟事務(wù),2.簽收模式*/Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//創(chuàng)建/聲明topic(消息的目的地)Topic topic = session.createTopic(TOPIC_NAME);//訂閱主題TopicSubscriber subscriber = session.createDurableSubscriber(topic, "remark");//建立連接connection.start();while (true) {//receive會阻塞線程//接收訂閱的消息TextMessage message = (TextMessage) subscriber.receive();System.out.println("接收到消息:" + message.getText());}/*//創(chuàng)建消費者MessageConsumer consumer = session.createConsumer(topic);//建立連接connection.start();*//*while (true) {//receive會阻塞線程TextMessage message = (TextMessage)consumer.receive();System.out.println("接收到消息:" + message.getText());}*//*//監(jiān)聽的方式消費consumer.setMessageListener(message -> {TextMessage textMessage = (TextMessage)message;try {System.out.println("1號接收到消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}});*/}}

推薦閱讀