activemq配置和專案中應用
伺服器ip
124.251.47.225,124.251.47.226,124.251.51.53
Zk路徑
/www/webdev/zookeeper-3.4.9
Zk啟動指令碼
/www/webdev/zookeeper-3.4.9/bin/zkServer.sh
釋出指令碼路徑
/www/webdev/heaboy
deploy-bpjk-qas.sh
activemq路徑
/www/activemq/apache-activemq-5.13.5
activemq配置檔案
/www/activemq/apache-activemq-5.13.5/conf/activemq.xml
需要配置225的叢集
Activemq啟動指令碼
/www/activemq/apache-activemq-5.13.5/bin/activemq
同步日誌檔案指令碼
在53伺服器上,將225,226的log日誌同步到53上
/backup/ Synchronizationlog.sh
檔案內容
sudo rsync -avz [email protected]::share_data /backup/226/log
sudo rsync -avz [email protected]::share_data /backup/225/log
sudo rsync -avz [email protected]::json_data /backup/json_data
sudo rsync -avz [email protected]::json_data /backup/json_data
環境配置
環境準備
工具
1. JDK1.6或1.7
2. Spring4.1.0
3. ActiveMQ5.11.1
4. Tomcat7.x
目錄結構
所需jar包
專案的配置
配置ConnectionFactory
connectionFactory是Spring用於建立到JMS伺服器連結的,Spring提供了多種connectionFactory,我們介紹兩個SingleConnectionFactory和CachingConnectionFactory。
SingleConnectionFactory:對於建立JMS伺服器連結的請求會一直返回同一個連結,並且會忽略Connection的close方法呼叫。
CachingConnectionFactory:繼承了SingleConnectionFactory,所以它擁有SingleConnectionFactory的所有功能,同時它還新增了快取功能,它可以快取Session、MessageProducer和MessageConsumer。我們使用CachingConnectionFactory來作為示例。
<beanid="connectionFactory"class="org.springframework.jms.connection.CachingConnectionFactory">
</bean>
Spring提供的ConnectionFactory只是Spring用於管理ConnectionFactory的,真正產生到JMS伺服器連結的ConnectionFactory還得是由JMS服務廠商提供,並且需要把它注入到Spring提供的ConnectionFactory中。我們這裡使用的是ActiveMQ實現的JMS,所以在我們這裡真正的可以產生Connection的就應該是由ActiveMQ提供的ConnectionFactory。所以定義一個ConnectionFactory的完整程式碼應該如下所示:
|
配置生產者
配置好ConnectionFactory之後我們就需要配置生產者。生產者負責產生訊息併發送到JMS伺服器。但是我們要怎麼進行訊息傳送呢?通常是利用Spring為我們提供的JmsTemplate類來實現的,所以配置生產者其實最核心的就是配置訊息傳送的JmsTemplate。對於訊息傳送者而言,它在傳送訊息的時候要知道自己該往哪裡發,為此,我們在定義JmsTemplate的時候需要注入一個Spring提供的ConnectionFactory物件。
在利用JmsTemplate進行訊息傳送的時候,我們需要知道傳送哪種訊息型別:一個是點對點的ActiveMQQueue,另一個就是支援訂閱/釋出模式的ActiveMQTopic。如下所示:
|
生產者如何指定目的地和傳送訊息?大家看原始碼即可,就不再這提供了。
配置消費者
生產者往指定目的地Destination傳送訊息後,接下來就是消費者對指定目的地的訊息進行消費了。那麼消費者是如何知道有生產者傳送訊息到指定目的地Destination了呢?每個消費者對應每個目的地都需要有對應的MessageListenerContainer。對於訊息監聽容器而言,除了要知道監聽哪個目的地之外,還需要知道到哪裡去監聽,也就是說它還需要知道去監聽哪個JMS伺服器,通過配置MessageListenerContainer的時候往裡面注入一個ConnectionFactory來實現的。所以我們在配置一個MessageListenerContainer的時候有三個屬性必須指定:一個是表示從哪裡監聽的ConnectionFactory;一個是表示監聽什麼的Destination;一個是接收到訊息以後進行訊息處理的MessageListener。
|
111
ActiveMQ.xml
此時,Spring和JMS,ActiveMQ整合的ActiveMQ.xml已經完成,下面展示所有的xml
Web.xml
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>ActiveMQSpringDemo</display-name>
<!-- Log4J Start -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
<!-- Spring Log4J config -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- Log4J End -->
<!-- Spring 編碼過濾器 start -->
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring 編碼過濾器 End -->
<!-- Spring Application Context Listener Start -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml,classpath*:ActiveMQ.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring Application Context Listener End -->
<!-- Spring MVC Config Start -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- Filter all resources -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring MVC Config End -->
</web-app>
ActiveMQ.xml
|
相關推薦
activemq配置和專案中應用
伺服器ip 124.251.47.225,124.251.47.226,124.251.51.53 Zk路徑 /www/webdev/zookeeper-3.4.9 Zk啟動指令碼 /www/webdev/zookeeper-3.4.9/bin/zkServer.sh
SpringBoot專案中應用Jedis和一些常見配置
# 優雅的使用Jedis 部落格地址:https://www.cnblogs.com/keatsCoder/p/12609109.html 轉載請註明出處,謝謝 Redis的Java客戶端有很多,Jedis是其中使用比較廣泛和效能比較穩定的一個。並且其API和RedisAPI命名風格類似,推薦大家使用
log4j配置和springboot中Logback配置
log4j 1. 導包 log4j下載地址 2. 配置檔案 預設配置檔案在src目錄下,個人感覺用properties還是比較爽的,在src下新建log4j.properties檔案 注:日誌級別 (debug < info < warn < e
SharedPreferences在專案中應用——開發記錄
開發記錄:在日常開發中,長使用的幾種本地序列化方式,SP的使用是最普遍的,所以對SP 的封裝就異常重要了,用起來順手的SP封裝工具,能夠節省你很多時間。 面試技能點 原生程式碼實現 工具類(只想要程式碼 Github 三個類直接貼到專案中就行了。) 枯燥的原理時間:
肯亞政府將在經濟適用房專案中應用區塊鏈技術 明確入住居民身份防止腐敗
為了降低成本,肯亞政府計劃使用區塊鏈技術對50萬套經濟適用房進行分配和資金管理。 根據肯亞政府頒佈的“2018財政法(Finance Act 2018)”要求,最新啟動的經濟適用房建設專案將由該國國家住房基金提供資金支援,該基金的資金來源包括幾個方面,包括由本地企業和職工的薪資中貢獻3%,
26.如何在實際專案中應用ROS導航相關(3)- 多點導航/巡航
前文 18.如何在實際專案中應用ROS導航相關(1)定點導航使用程式啟動一個pibot_simulator,並且完成一個定點導航,本文對其修改完成一個多點導航航的例子 直接貼出程式碼 navigation_multi_demo.launch <launch
淺談持續整合構建在網際網路軟體測試專案中應用與分析·
一、引言 在網際網路資訊時代,隨著Internet的快速增長及Web應用的不斷髮展,使其快速滲透到商業、電子商務、軍事、工業、教育等領域和個人生活的各個方面,對我們的生活及工作產生了深遠的影響。在當今市場需求和Internet技術進步的不斷推動下,Web應用日益增加,網際網路的軟體規模不斷擴大,
activeMQ例項在專案中的運用【專案實戰系列】
1.下載ActiveMQ 去官方網站下載:http://activemq.apache.org/ 2.執行ActiveMQ 解壓縮apache-activemq-5.14.0-bin.zip,然後雙擊apache-activemq-5.14.0\bin\activemq.
泛型在類和介面中應用
泛型就是變數型別的引數化。在使用泛型前,存入集合中的元素可以是任何型別的,當從集合中取出時,所有的元素都是Object型別,需要進行向下的強制型別轉換,轉換到特定的型別。而強制型別轉換容易引起執行時錯誤。 泛型型別引數只能被類或介面型別賦值,不能被原生
MySQL設定編碼和專案中如何統一編碼
資料庫、表、表字段、伺服器程式碼、伺服器檔案、瀏覽器顯示的編碼要統一。 建庫建表時指定編碼: 建立資料庫時指定庫編碼: create database databaseName default character set utf8 collate utf8
flask中的session cookie 測試 和 專案中的使用者狀態保持
測試程式碼 # -*- coding:utf-8 -*- # Author: json_steve from flask import Flask, current_app, make_resp
工作總結19 tomcat下的web.xml和專案中的web.xml
今天在部署專案的時候,如果我沒有在自己的專案配置web.xml的 <welcome-file-list> <welcome-file>/index.jsp<
【Android】RxJava2+Retrofit2+OkHttp3的基礎、封裝和專案中的使用
前言: 近些年很火的Retrofit+RxJava+OkHttp網路請求框架,功能強大,結構合理,使用簡單方便。後面還會給大家發自己整理過的Retrofit和RxJava、RxAndroid和RxBus。希望大家點一下關注,讓我這個懶癌患者有動力繼續寫下去! 本
activeMQ例項在專案中的運用二【專案實戰系列】
上一篇我們已經介紹了activeMQ的伺服器端的開發和程式碼,那麼這一篇就介紹一下怎麼獲取對應的activeMQ裡面的資訊,並 通過websocket推送到前端。 首先來看一下接收端專案結構: 專案結構中主要的就是listener包裡
java執行緒池在web專案中應用
執行緒池 JANUARY 8,2016 遇到了問題 依稀還記得是15年初的時候,一些業務資料發生了錯誤,經過仔細分析,認為是重複發起了請求引起的,經過多方確認任務重複請求不是認為操作,分析程式發現程式也不會無緣無故發起二次請求。因為這個情況只發生過一次兩次,再加上仔細檢查程
Maven多模組專案中應用maven-tomcat-plugin熱部署
我這個專案是用maven管理的一個多模組的專案,大概結構是 aaa -Business -Core -Framework -Web aaa是pom專案,Web是war專案,其它的是jar 一開始我是在Web裡面配置了tomcat的
使用性的單例模式,專案中應用
實現階段進階:如果檢視書本上單例模式,簡單一句話,都是如何實現。 並且實現務必有 Class.GetInstance() 的語句。這種方式的缺點還一個就是程式碼的可讀性受影響; 原因區別於非單例的程式碼new Class(); 並且對於庫的引用者的視角需要明白單例一說。 那
centos下tomcat+mysql的配置和專案部署
TOMCAT伺服器的配置 1. jre的安裝 1.1 檢視centos中原來自帶的JDK並解除安裝 1 [[email protected] home]# java -version|grep gcj 2 [[email protected
在spring boot專案中應用swagger2
1. 在pom.xml中新增<dependency> <groupId>io.springfox</groupId> <artifactId&g
專案中應用Redis+Php的場景
redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。今天我們來看下php結合redis的一些應用場景 前言 一些案例中有的同學說為什麼不可以用string型