1. 程式人生 > >Dubbo高階篇_02_activemq的安裝與使用

Dubbo高階篇_02_activemq的安裝與使用

1.activemq上傳、解壓安裝


解壓安裝


2.移動activemq到指定目錄 


3.配置activemq

ActiveMQ 需要用到兩個埠

一個是訊息通訊的埠(預設為 61616

 一個是管理控制檯埠(預設為 8161)可在conf/jetty.xml 中修改,如下

指定jetty埠


指定通訊埠



4.在防火牆中開啟相應埠


5.啟動activemq


在瀏覽器開啟訪問


admin/admin登入


登入成功


6.安全配置(訊息安全)

 ActiveMQ 如果不加入安全機制的話,任何人只要知道訊息服務的具體地址(包括 ip,埠,訊息地址 [佇列或者主題地址 ] ),都可以肆無忌憚的傳送、接收訊息。關於

  ActiveMQ  安裝配置http://activemq.apache.org/security.html

ActiveMQ 的訊息安全配置策略有多種,我們以簡單授權配置為例:conf/activemq.xml 檔案中在broker 標籤最後加入以下內容即可:


定義了一個yixq 使用者,密碼為yxq123456,角色為users,admins


設定 admin 的使用者名稱和密碼:

確保 authenticate 的值為true(預設)


控制檯的登入使用者名稱密碼儲存在 conf/jetty-realm.properties 檔案中,內容如下


注意:使用者名稱和密碼的格式是
使用者名稱 :

密碼,角色名

重啟,再登入就是新設定的密碼登入

7.加入環境變數:


8.設定開機啟動:

# vi /etc/rc.local

加入:

su - yxq -c '/home/yxq/app/activemq/bin/activemq start'

MQ 訊息生產者也與訊息消費者的 Demo 樣例講解

訊息提供方:

package com.edu.demo.mqtest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.edu.demo.mqtest.MQProducer;
import com.edu.demo.mqtest.params.MailParam;

public class MQProducerTest {
	private static final Log log = LogFactory.getLog(MQProducerTest.class);

	public static void main(String[] args) {
		try {
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
			context.start();

			MQProducer mqProducer = (MQProducer) context.getBean("mqProducer");
			// 郵件傳送
			MailParam mail = new MailParam();
			mail.setTo("
[email protected]
"); mail.setSubject("ActiveMQ測試"); mail.setContent("通過ActiveMQ非同步傳送郵件!"); mqProducer.sendMessage(mail); context.stop(); } catch (Exception e) { log.error("==>MQ context start error:", e); System.exit(0); } finally { log.info("===>System.exit"); System.exit(0); } } }
package com.edu.demo.mqtest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.edu.demo.mqtest.MQProducer;
import com.edu.demo.mqtest.params.MailParam;

public class MQProducerTest {
	private static final Log log = LogFactory.getLog(MQProducerTest.class);

	public static void main(String[] args) {
		try {
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
			context.start();

			MQProducer mqProducer = (MQProducer) context.getBean("mqProducer");
			// 郵件傳送
			MailParam mail = new MailParam();
			mail.setTo("[email protected]");
			mail.setSubject("ActiveMQ測試");
			mail.setContent("通過ActiveMQ非同步傳送郵件!");

			mqProducer.sendMessage(mail);

			context.stop();
		} catch (Exception e) {
			log.error("==>MQ context start error:", e);
			System.exit(0);
		} finally {
			log.info("===>System.exit");
			System.exit(0);
		}
	}
}
spring-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
           http://www.springframework.org/schema/aop   
           http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
           http://www.springframework.org/schema/tx  
           http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
           http://www.springframework.org/schema/context  
           http://www.springframework.org/schema/context/spring-context-3.2.xsd"
	default-autowire="byName" default-lazy-init="false">	
	
	<!-- 採用註釋的方式配置bean -->
	<context:annotation-config />

	<!-- 配置要掃描的包 -->
	<context:component-scan base-package="com.edu.demo" />

	<!-- 讀入配置屬性檔案 -->
	<context:property-placeholder location="classpath:mq.properties" />

	<!-- proxy-target-class預設"false",更改為"ture"使用CGLib動態代理 -->
	<aop:aspectj-autoproxy proxy-target-class="true" />	
	
	<import resource="spring-mq.xml" />
</beans>
spring-mq.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
           http://www.springframework.org/schema/aop   
           http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
           http://www.springframework.org/schema/tx  
           http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
           http://www.springframework.org/schema/context  
           http://www.springframework.org/schema/context/spring-context-3.2.xsd"
	default-autowire="byName" default-lazy-init="false">	
	
	<!-- 真正可以產生Connection的ConnectionFactory,由對應的 JMS服務廠商提供 -->
	<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
		<!-- ActiveMQ服務地址 -->
        <property name="brokerURL" value="tcp://192.168.1.121:61616" />
        <property name="userName" value="yixq"></property>
        <property name="password" value="yxq123456"></property> 
	</bean>

    <!-- 
    	ActiveMQ為我們提供了一個PooledConnectionFactory,通過往裡面注入一個ActiveMQConnectionFactory
    	可以用來將Connection、Session和MessageProducer池化,這樣可以大大的減少我們的資源消耗。
    	要依賴於 activemq-pool包
     -->
	<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
		<property name="connectionFactory" ref="targetConnectionFactory" />
		<property name="maxConnections" value="10" />
	</bean>

	<!-- Spring用於管理真正的ConnectionFactory的ConnectionFactory -->
	<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
		<!-- 目標ConnectionFactory對應真實的可以產生JMS Connection的ConnectionFactory -->
		<property name="targetConnectionFactory" ref="pooledConnectionFactory" />
	</bean>
	
	<!-- Spring提供的JMS工具類,它可以進行訊息傳送、接收等 -->
	
	<!-- 佇列模板 -->
	<bean id="activeMqJmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
	    <!-- 這個connectionFactory對應的是我們定義的Spring提供的那個ConnectionFactory物件 -->  
	    <property name="connectionFactory" ref="connectionFactory"/>  
	    <property name="defaultDestinationName" value="com.edu.mqtest.v1"></property>
	</bean> 

</beans>

pom.xml配置

測試類
package com.edu.demo.mqtest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.edu.demo.mqtest.MQProducer;
import com.edu.demo.mqtest.params.MailParam;

public class MQProducerTest {
	private static final Log log = LogFactory.getLog(MQProducerTest.class);

	public static void main(String[] args) {
		try {
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
			context.start();

			MQProducer mqProducer = (MQProducer) context.getBean("mqProducer");
			// 郵件傳送
			MailParam mail = new MailParam();
			mail.setTo("[email protected]");
			mail.setSubject("ActiveMQ測試");
			mail.setContent("通過ActiveMQ非同步傳送郵件!");

			mqProducer.sendMessage(mail);

			context.stop();
		} catch (Exception e) {
			log.error("==>MQ context start error:", e);
			System.exit(0);
		} finally {
			log.info("===>System.exit");
			System.exit(0);
		}
	}
}


相關推薦

Dubbo高階_02_activemq安裝使用

1.activemq上傳、解壓安裝 解壓安裝 2.移動activemq到指定目錄  3.配置activemq埠 ActiveMQ 需要用到兩個埠 一個是訊息通訊的埠(預設為 61616)  一個是管理控制檯埠(預設為 8161)可在conf/jetty.xml 中修

dubbo monitor 2.6 安裝搭建

Dubbo 原始碼:https://github.com/apache/incubator-dubbo/ Dubbo 版本歷史:https://github.com/apache/incubator-dubbo/releases 首先提供dubbo-monitor-2.6 服務下載連結:http

dubbo admin 2.6 安裝搭建 - 待續

搭建dubbo-admin平臺 Dubbo 在2.6版本時合併了dubbox 的分支,現在dubbo-admin也遷移到一個單獨專案。 Dubbo 原始碼:https://github.com/apache/incubator-dubbo/ Dubbo 版本歷史:https://github.

Dubbo高階_07_Dubbo服務介面的設計原則

1 、設計方式 action->facade->biz->dao 好的Dubbo服務介面設計,並非只是純粹的介面服務化 2.介面型別 簡單的資料查詢介面:action.facade、dao(例根據Id查詢記錄) 帶業務邏輯的資料查詢介面:actio

Dubbo高階_12_dubbo服務只註冊

只註冊 (+) (#) 問題 如果有兩個映象環境,兩個註冊中心,有一個服務只在其中一個註冊中心有部署,另一個註冊中心還沒來得及部署,而兩個註冊中心的其它

Dubbo高階_10_Dubbo消費端直連服務提供者(開發除錯)

直連提供者(+) (#)在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連,點對點直聯方式,將以服務介面為單位,忽略註冊中心的提供者列表,A介面配置點對點,不影響B介面從註冊中心獲取列表。(1) 如果是線上需求需要點對點,可在<du

Dubbo高階_01_訊息中介軟體在分散式架構的作用和介紹

訊息中介軟體的定義 Message-oriented middleware (MOM) is software infrastructure focused on sending and receiving messages between distributed syst

Dubbo高階_10_Dubbo執行緒模型

執行緒模型 http://dubbo.io/User+Guide-zh.htm 使用者指南>>執行緒模型 類似於資料庫的連線池 (+) (#) 事件處理執行緒說明如果事件處理

Dubbo+Zookeeper架構—高階17—Linux安裝ActiveMQ訊息中介軟體

IP:192.168.126.131   環境:CentOS 6.6、JDK8 1、 安裝 JDK 並配置環境變數(略) JAVA_HOME=/usr/local/java/jdk1.8.0_72  2、 下載 Linux 版的 ActiveMQ(當前最新版 apach

Dubbo+Zookeeper架構—高階20-fastdfs分散式檔案系統的安裝

目錄 FastDFS簡介 系統架構 系統架構-下載檔案流程圖 相關術語 同步機制 •同一組內的storage server之間是對等的,檔案上傳、刪除等操作可以在任意一臺storage server上進行; 安裝 環境資訊 一、所有跟蹤伺服器和儲存伺服器均執行如下

Charles安裝應用指南--安裝代理

彈窗 指南 代理 .cn www 都是 info amp ray Charles是開發測試過程中十分常用的一款代理軟件,之前也寫了一點基本使用。最近有新同事入職頭一次用這個,就寫了這麽一份基本的安裝和配置筆記。 Charles 下載地址 mac:鏈接: https://pa

第一:saltstack安裝配置

clu 客戶端 include 是否 htm master ssi system pro 第一篇:saltstack安裝與配置 saltstack 安裝 saltstack yum 源配置 saltstack官方源國內訪問比較慢,建議使用阿裏雲源 #centos 6 yum

C&C++入門---CodeBlocks的安裝簡單配置

最近接觸C&C++語言,很多人都在用microsoft visual c++軟體,無奈本人安裝各種版本,由於與電腦不匹配,始終裝不上!有人說道可以通過換系統辦法解決,總不能為了裝這個軟體,而把我其它軟體全部解除安裝。所以就想到了這個軟體,簡單介紹下此軟體。 Code::Bloc

C語言高階 - 4.連結串列&狀態機多執行緒

1.連結串列的引入 1、從陣列的缺陷說起         (1)陣列有2個缺陷,一個是陣列中所有元素的型別必須一致;第二個是陣列的元素個數必須事先制定並且一旦指定之後不能更改。         (2)如何解決

Git學習第(三):Sublime Text3 Git外掛安裝使用

1、安裝Git外掛 第一步,開啟Sublime Text3,按下Ctr+Shift+P快捷鍵,開啟命令視窗,輸入pci,選擇Package Control: Install Package選項, 第二步,在元件視窗中輸入Git,選擇Git外掛進行安裝。(裡面有很多和Git相關的外掛,沒

Linux高階--運維自動化之系統安裝基礎知識

Linux高階篇–運維自動化之系統安裝基礎知識 一、 系統安裝過程 系統安裝程式 CentOS系統安裝 系統啟動流程: 1、post加電自檢 2、尋找啟動裝置:硬碟,尋找啟動程式grub 1階段:mbr 446位元組 1.5:mbr後續的27個扇區 2階段:

mysql 開發進階系列 45 xtrabackup 安裝使用者許可權說明(系統使用者和mysql使用者)

一. 安裝說明   安裝XtraBackup 2.4 版本有三種方式:            (1) 儲存庫安裝Percona XtraBackup(推薦)            (2 )下載的rpm或apt包安裝Percona XtraBackup。            (3) 原始碼編譯和安裝。  Pe

Dubbo+Zookeeper架構—高階16—訊息中介軟體在分散式系統中的作用及介紹

一、訊息中介軟體的定義        Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmessages between distribute

Linux高階程式設計基礎——程序間通訊之訊號的安裝傳送

程序間通訊之訊號的安裝與傳送 呼叫setitimer函式分別觸發SIGALRM訊號,SIGVTALRM訊號,SIGPROF訊號 ;(可以由多程序分別觸發每個訊號) 編寫訊號安裝函式,在該函式內部能判斷接受到的是什麼訊號,並把訊號打印出來。 #include

Linux高階程式設計基礎——程序間通訊之用sigqueue函式和sigaction函式實現訊號的安裝傳送

程序間通訊之用sigqueue函式和sigaction函式實現訊號的安裝與傳送 程序A向程序B傳送SIGUSR1訊號; 程序B收到訊號後,列印字串“receive SIGUSR1”; 要求用sigqueue函式和sigaction函式實現以上功能; /這個實