1. 程式人生 > >ActiveMq學習簡單學習(1)Demo

ActiveMq學習簡單學習(1)Demo

基本條件

搭建之前有一定java 開發基礎

下載ActiveMq

1、最新下載地址版本:http://activemq.apache.org/download.html
2、解壓即可。
3、啟動ActiveMq 服務。windows下雙擊D:\ACTIVEMQ\apache-activemq-5.15.6\bin\win64 下的activemq 指令碼 。也可以 在該目錄 通過linux命令 ./activemq start
4、如圖所示就是啟動成功
圖1

maven 整合mq 的jar

<!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-all -->
		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-all</artifactId>
			<version>5.15.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.xbean/xbean-spring -->
		<dependency>
			<groupId>org.apache.xbean</groupId>
			<artifactId>xbean-spring</artifactId>
			<version>3.7</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

Java 程式碼以及註釋

1、常量工具類

package com.dairujie.utils;

import org.apache.activemq.ActiveMQConnection;
/**
 * 
 * @ClassName:  ConstantUtil   
 * @Description:TODO(常量工具類)   
 * @author: drj 
 * @date:   2018年10月13日 下午5:10:51   
 *     
 * @Copyright: 2018 
 *
 */
public class ConstantUtil {
	public static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL;
	public static final String TITLE = "DRJ";
}
2、傳送類

    package com.dairujie.send;
    
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import com.dairujie.utils.ConstantUtil;
    
    /**
     * 
     * @ClassName: MqSender
     * @Description:TODO(訊息傳送者)
     * @author: drj
     * @date: 2018年10月7日 下午4:16:03
     * 
     * @Copyright: 2018
     *
     */
    public class MqSender {
    	private final static Logger logger = (Logger) LoggerFactory.getLogger(MqSender.class);
    
    	public static void main(String[] args) {
    		// 初始化連線工廠       
    		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ConstantUtil.BROKER_URL);// 獲得連線     
    		Connection conn = null;
    		Session session = null;
    		MessageProducer producer = null;
    		try {
    			conn = connectionFactory.createConnection();
    			conn.start();
    			// 建立Session,此方法第一個引數表示會話是否在事務中執行,true的話 第二個引數無效。第二個引數設定會話的應答模式
    			//  AUTO_ACKNOWLEDGE 當客戶成功從recrive 返回時 自動確認客戶收到訊息。
    			// CLIENT_ACKNOWLEDGE    message.acknowledge(); 可以將全部消費的資訊提交  
    			session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    			// 建立佇列     
    			Destination dest = session.createQueue(ConstantUtil.TITLE);
    			// 通過session可以建立訊息的生產者       
    			producer = session.createProducer(dest);
    			for (int i = 0; i < 5; i++) {// 初始化一個mq訊息           
    				TextMessage message = session.createTextMessage("HELLO WOLRD" + i);
    				// 傳送訊息           
    				producer.send(message);
    			}
    
    			// 關閉mq連線       
    		} catch (JMSException e) {
    			logger.error("ERROR IS " + e);
    		} finally {
    			if (session != null) {
    				try {
    					//session.commit();//createSession(true, Session.AUTO_ACKNOWLEDGE);第一個引數是true需要提交
    					session.close();
    				} catch (JMSException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    
    			}
    			if (producer != null) {
    				try {
    					producer.close();
    				} catch (JMSException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    			if (conn != null) {
    				try {
    					conn.close();
    				} catch (JMSException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    }

3、消費類

package com.dairujie.send;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.dairujie.utils.ConstantUtil;

/**
 * 
 * @ClassName: MqSender
 * @Description:TODO(訊息傳送者)
 * @author: drj
 * @date: 2018年10月7日 下午4:16:03
 * 
 * @Copyright: 2018
 *
 */
public class MqSender {
	private final static Logger logger = (Logger) LoggerFactory.getLogger(MqSender.class);

	public static void main(String[] args) {
		// 初始化連線工廠       
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ConstantUtil.BROKER_URL);// 獲得連線     
		Connection conn = null;
		Session session = null;
		MessageProducer producer = null;
		try {
			conn = connectionFactory.createConnection();
			conn.start();
			// 建立Session,此方法第一個引數表示會話是否在事務中執行,true的話 第二個引數無效。第二個引數設定會話的應答模式
			//  AUTO_ACKNOWLEDGE 當客戶成功從recrive 返回時 自動確認客戶收到訊息。
			// CLIENT_ACKNOWLEDGE    message.acknowledge(); 可以將全部消費的資訊提交  
			session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
			// 建立佇列     
			Destination dest = session.createQueue(ConstantUtil.TITLE);
			// 通過session可以建立訊息的生產者       
			producer = session.createProducer(dest);
			for (int i = 0; i < 5; i++) {// 初始化一個mq訊息           
				TextMessage message = session.createTextMessage("HELLO WOLRD" + i);
				// 傳送訊息           
				producer.send(message);
			}

			// 關閉mq連線       
		} catch (JMSException e) {
			logger.error("ERROR IS " + e);
		} finally {
			if (session != null) {
				try {
					//session.commit();//createSession(true, Session.AUTO_ACKNOWLEDGE);第一個引數是true需要提交
					session.close();
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
			if (producer != null) {
				try {
					producer.close();
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

執行截圖

相關推薦

ActiveMq學習簡單學習(1)Demo

基本條件 搭建之前有一定java 開發基礎 下載ActiveMq 1、最新下載地址版本:http://activemq.apache.org/download.html 2、解壓即可。 3、啟動ActiveMq 服務。windows下雙擊D:\ACTIVEMQ

JMS+activeMq+spring簡單學習及模擬處理新聞日誌場景

在介紹JMS的知識之前,先說說我瞭解學習JMS的原因。        公司有一個新聞專案,我們知道新聞網站都是面向所有使用者群的,它不但要求新聞的實時性,還要求網頁的響應時間必須很快, 你想啊,如果你在某個網站看新聞,如果網頁響應比較慢,那誰願意來你網站看新聞啊,所以新聞

Hbase簡單學習---1

技術 gpo info class mage put div com 學習 1.求和2.put一行數據或一列數據3.刪除某一列的數據4.全表掃描5.get某一行或某一列的數據6.相當於組合的命令,對表進行初始化刪除一個然後又創建一個表 Hbase簡單學習---1

scrapy的學習之路1(簡單的例子)

strong os.path pro tle text arch try mobile pip scrapy的安裝 環境:python3.6 1 pip install -i https://pypi.douban.com/simple/ scrapy 2

python之再學習----簡單的列表(1)

cycle print gpo 組成 系列 letters 開始 mes 包含 print("today to learn the list")# 列表由一系列按特定順序排列的元素組成。你可以創建包含字母,0-9的數字,所有家庭成員的姓名的列表。# 鑒於列表一般都是包含很多

python學習-ansible簡單使用1

color 計算平臺 exc rda 管理方式 開源 大數據 ctime lse 一、介紹Ansible 一種集成 IT 系統的配置管理、應用部署、執行特定任務的開源平臺,是 AnsibleWorks 公司名下的項目,該公司由 Cobbler 及 Func 的作者於 201

簡單學習Python之路1

打開文件 打開 數據 返回 文件 font 兩個 pri pytho 如何在cmd中打開文件:先用win+R打開cmd界面,在已知到你自己要打開文件的地址之後比如(F:\workspace),你先按F:,然後在用cd workspace進入workspace的文件中,然後在

MyBatis學習筆記(1)---一個簡單MyBatis示例

利用JDBC仍舊存在的幾個侷限性: 在應用程式中存在的大量程式碼冗餘。 業務程式碼與資料庫訪問程式碼混雜在一起。 SQL語句與Java程式碼混雜在一起。 JDBC丟擲費力難懂的checked異常,需要程式設計師花費精力小心處理。 需要程式設計師自行解決ORM

設計模式學習總結(1簡單工廠模式、工廠方法模式、抽象工廠模式

設計模式學習 做了幾個專案,發現設計模式的好處還是很多的,這東西就是隻有你真正用到的時候才知道他的好處,否則學了也不知道所以然。所以設計模式學習我認為可以在先進行幾個專案後,再來學習,這樣學習的效果和感受才是最好的。 這次是做一個學習的筆記,內容還是主要以我看的兩本書《大

SpringCloud學習點滴——Spring boot的簡單入門1

因為SpringCloud是在Spring Boot 的基礎上開發的,所以在學習Spring cloud之前,應該要對spring boot有一定的瞭解 一、首先構建一個Spring boot專案:   1、通過官方的Spring Initializr工具產生基礎專案   2、訪問http://star

C++設計模式學習筆記02_簡單工廠1

為了應對很多實際的生活中的問題,將實際的問題轉換成程式碼,設計模式的學習確實很有用,簡單學了兩天的設計模式(斷斷續續)感 這兩天抽空看了設計模式中的幾種工廠模式,簡單總結下吧 0、簡單工廠 1、更加方便的設計模式都是在前者設計模式在實際應用中遇到了難題才才應運而生的,當我們設計程

RabbitMQ的學習(二):簡單的java demo實現RabbitMQ的傳送與接收

通過第一章已經很輕鬆地實現了RabbitMQ的安裝和啟動,第二章開始最簡單的java demo學習,一層一層深入瞭解RabbitMQ的牛逼之處,期間肯定也會碰到很多問題,這些問題,將會收集起來,最後面去解決同時也會寫相關的文章。 一、專案相關jar包匯入: 新建一個maven工程,p

Stuts2學習筆記(1):環境搭建及Demo

原始碼: github: https://github.com/liaotuo/Struts2-Demo/tree/master/struts2-demo 環境搭建 下載struts2 官網下載:http://mirror.bit.edu.cn/apache/struts

ActiveMQ學習總結(1)——ActiveMQ快速入門

1.下載ActiveMQ 2.執行ActiveMQ 解壓縮apache-activemq-5.5.1-bin.zip,然後雙擊apache-activemq-5.5.1\bin\activemq.bat執行ActiveMQ程式。 3.建立Eclipse專案並執行

Spring Boot 學習之路——1 入門demo

前言:使用Spring Boot已有一年多時間,卻從未靜下心來總結,今天抽空寫個傻瓜式教程,鞏固一下。Spring Boot的主要優點:為所有Spring開發者更快的入門開箱即用,提供各種預設配置來簡化專案配置內嵌式容器簡化Web專案沒有冗餘程式碼生成和XML配置的要求(Sp

spring boot security的簡單學習demo

專案的目錄結構如圖 bootstrap.min.css自己上網上找到下載吧 pom.xml <!-- Spring Boot 啟動父依賴 核心模組,包括自動配置支援、日誌和YAML--> <parent>

Caffe學習筆記(1):簡單的資料視覺化

caffe的底層是c++寫的,如果要進行資料視覺化,需要藉助其它的庫或者是介面,如opencv,python或者是matlab,python的環境需要自行配置,因為我使用的都是網管同志已經配置好的深度學習伺服器,所以不用管底層的一些配置問題,如果需要自行配置自己

孤荷淩寒自學python第六十二天學習mongoDB的基本操作並進行簡單封裝1

年齡 聯系 文檔 社區 查詢 直接 執行 lifo 時代 孤荷淩寒自學python第六十二天學習mongoDB的基本操作並進行簡單封裝1 (完整學習過程屏幕記錄視頻地址在文末) 今天是學習mongoDB數據庫的第八天。 今天開始學習mongoDB的簡單操作,並對一些

孤荷凌寒自學python第六十二天學習mongoDB的基本操作並進行簡單封裝1

孤荷凌寒自學python第六十二天學習mongoDB的基本操作並進行簡單封裝1   (完整學習過程螢幕記錄視訊地址在文末)   今天是學習mongoDB資料庫的第八天。 今天開始學習mongoDB的簡單操作,並對一些可能反覆經常使用的操作進行簡單的封裝。   今天成

微信簡單的登入demo,後臺SSH框架供初學者學習

裡面涉及到的小程式元件form,input,button的使用詳解,請參考:http://www.jb51.net/article/102737.htm首先微信端頁面程式碼index.wxml:<form bindsubmit='formSubmit'><v