新聞中心
在現(xiàn)代軟件開發(fā)中,消息隊列(MQ)程序經(jīng)常作為我們的系統(tǒng)之間進行通信的方式。而Linux作為一個流行的開源操作系統(tǒng),也被廣泛應用于企業(yè)中。本篇文章將會詳細介紹,以幫助開發(fā)者更加深入地理解和使用MQ和Linux操作系統(tǒng)。

成都創(chuàng)新互聯(lián)公司網(wǎng)絡公司擁有十多年的成都網(wǎng)站開發(fā)建設經(jīng)驗,近1000家客戶的共同信賴。提供成都網(wǎng)站制作、成都網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設、網(wǎng)站開發(fā)、網(wǎng)站定制、買鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應式網(wǎng)站建設公司、網(wǎng)頁設計師打造企業(yè)風格,提供周到的售前咨詢和貼心的售后服務
一、MQ的定義和原理
MQ,全稱為Message Queues,中文翻譯為消息隊列,是指在不同的進程之間傳遞消息的一種方式。MQ常常用作一個分布式系統(tǒng)中異構機器之間的通信方式。簡單來說,MQ就是將消息存儲在一個隊列中,異步地向隊列中發(fā)送和接受消息。
MQ的原理可以通過下圖來理解:
1. 發(fā)送者A發(fā)送消息到隊列中
2. 接收者B從隊列中讀取消息
3. 接收者B處理消息,返回給發(fā)送者A
通過上述流程,發(fā)送者A可以異步地往隊列中發(fā)送消息,而不用等待接收者B完成處理。同時,MQ也能保證所有的消息都會被處理,避免了消息丟失的情況。
二、Linux的定義和特點
Linux是一個開源的操作系統(tǒng)核心,它的內(nèi)核是由Linus Torvalds和其他參與者開發(fā)的。Linux內(nèi)核和GNU工具包組成了一個完整的操作系統(tǒng),具有高度的可定制性和靈活性。Linux支持多種硬件架構,并且非常安全和穩(wěn)定。
Linux的特點主要有以下幾個方面:
1. 開源的
2. 多用戶、多任務
3. 高效的內(nèi)存管理
4. 高度可定制
5. 網(wǎng)絡和安全功能強大
三、在Linux平臺上編譯MQ程序的步驟
在Linux平臺上編譯MQ程序需要遵循以下步驟:
1. 安裝編譯環(huán)境
為了編譯MQ程序,你需要安裝一些必要的編譯工具,例如gcc、g++、make、automake等。你可以通過命令行輸入以下命令來安裝這些工具:
“`bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
“`
這些工具將幫助你編譯和構建MQ程序。
2. 下載MQ源代碼
你可以從MQ的官方網(wǎng)站上下載MQ源代碼,也可以從GitHub等源代碼托管平臺上獲取MQ的源代碼。一旦你獲得了MQ的源代碼,你需要解壓文件并將其保存到你的工作目錄下。
3. 構建配置文件
MQ的構建過程需要使用一個配置文件來告訴編譯器需要編譯哪些文件以及如何編譯。你需要創(chuàng)建一個名為Makefile或者CMakeLists.txt的文件,這取決于你使用的構建工具。在這個文件中,你需要指定需要編譯的源代碼,包括MQ的頭文件和庫文件。
4. 執(zhí)行構建命令
一旦你創(chuàng)建了配置文件,你需要在Linux中運行構建命令來編譯MQ程序。你可以在命令行中輸入以下命令進行編譯:
“`bash
make
“`
該命令將根據(jù)你的配置文件來編譯MQ程序,并生產(chǎn)可執(zhí)行文件。
5. 運行MQ測試程序
你需要測試MQ程序是否正確編譯。你可以在命令行中輸入以下命令來運行MQ測試程序:
“`bash
./test_mq
“`
如果測試程序正常執(zhí)行,那么MQ程序就已經(jīng)成功編譯了。
四、在MQ平臺下編譯Linux程序的步驟
在MQ平臺下編譯Linux程序需要遵循以下步驟:
1. 安裝MQ
你需要下載并安裝MQ的服務器程序,例如ActiveMQ、RabbitMQ、Kafka等。你可以在MQ的官方網(wǎng)站上下載相應的程序。安裝并配置MQ服務器需要一定的技能,如果你不確定如何操作,可以參考官方文檔進行配置。
2. 配置MQ
一旦你安裝好MQ服務器,你需要創(chuàng)建一個MQ隊列和一個消費者客戶端應用程序。你需要在MQ的控制面板中設置隊列和消費者,以便你的客戶端程序能夠與MQ服務器進行通信。
3. 下載Linux程序源代碼
你需要從Linux程序的源代碼倉庫中下載源代碼,并將其保存到你的工作目錄中。
4. 構建程序
你需要根據(jù)Linux程序的代碼構建程序。你可以使用make命令來構建程序,就像在Linux上編譯MQ程序時所做的那樣。
5. 編寫MQ客戶端程序
你需要編寫一個MQ客戶端程序來向MQ服務器發(fā)送消息并接收響應。你可以使用MQ的API來編寫客戶端程序,并將其與你的Linux程序集成起來。
6. 測試應用程序
一旦你完成了MQ客戶端程序的編寫,你就可以測試程序是否在MQ平臺下正常運行。你可以使用消息隊列來發(fā)送和接收消息,以測試程序是否正確。
五、結論
在本篇文章中,我們詳細介紹了。通過了解MQ的原理和Linux的特點,開發(fā)者可以更好地理解和使用MQ和Linux操作系統(tǒng)。希望這篇文章能夠幫助到正在進行MQ和Linux開發(fā)的工程師們。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220linux下安裝MQ mqlisence.sh-accept這個命令執(zhí)行不了怎么辦?
如果MQ的安裝包是ISO,所以需要將ISO文件mount到Linux的一個目錄下面,具體操作如下:
假如選定的mount目錄為根目錄下mnt/下面,或者下面新建一個目錄可以mkdir一個目錄。在此是直接放備森在mnt目錄下面的:
ISO文件放在/home/afe/MQinstall/下面,名字為MQ_6.0_Linux_x86-64.iso 那么可以用命令:
mount -o loop /home/afe/MQinstall/MQ_6.0_Linux_x86-64.iso /mnt/cd1
這個時候,ISO文件中的rpm文件都出現(xiàn)在了/mnt下面。
備注:使用mount需要root權限。
如果你的安裝包是.tar.gz文件,那就可以省略以上一個步驟:直接解壓
tar -zxvf MQ_6.0_Linux_x86-64.tar.gz
接下來步驟如下:
1:創(chuàng)建WebSphere MQ 必需的文件系統(tǒng),命令如下:
mkdir /opt/mqm # for product code
mkdir /var/mqm # for working data
MQ安裝時候默認的目錄就是這兩個,意思可以沒必要建,但是為了保險還是自搏畝己手工建立一下。
2:創(chuàng)造MQ用戶和用戶組,命令如下:
groupadd mqm
useradd -d /var/mqm -g mqm -G mqm mqm
passwd mqm # change password to “password”
只有把mqm密碼改了,才能使以上生效。
3:為mqm用戶組添加root組
cd /etc
vi group
修改 mqm:!:1007:mqm ? mqm:!:1007:mqm,root
這里的gid要依據(jù)各個系統(tǒng)的建立用戶設定而為。此處是1007
4:調(diào)整系統(tǒng)參數(shù)(視需要而定)
修改更大共享內(nèi)存,命令如下:
cat /proc/sys/kernel/shmmax
echo>/proc/sys/kernel/shmmax
修改更大文件句柄,命令如下:
cat /proc/sys/fs/file-max
echo>/proc/sys/fs/file-max
如果自己系統(tǒng)比這個大,沒必要改。
5:轉(zhuǎn)到WebSphere MQ解壓后的目錄中,獲得WebSphere MQ授權,命令如下:
./mqlicense.sh -text_only
閱讀全文后,選擇1接受授權。
6:安裝WebSphere MQ客戶端和服務端,命令如下:
rpm -ivh MQSeriesRuntime-6.0.0-0.i386.rpm
rpm -ivh MQSeriesSDK-6.0.0-0.i386.rpm
rpm -ivh MQSeriesJava-6.0.0-0.i386.rpm
rpm -ivh MQSeriesClient-6.0.0-0.i386.rpm
rpm -ivh MQSeriesSamples-6.0.0-0.i386.rpm
rpm -ivh MQSeriesServer-6.0.0-0.i386.rpm(如果只裝客戶端,這個沒必要安裝)
7:安裝基滾森校驗
rpm -qa | grep MQSeries
結果如下則表明MQ 客戶端的安裝已成功。
MQSeriesRuntime-6.0.0-0
MQSeriesSDK-6.0.0-0
MQSeriesJava-6.0.0-0
MQSeriesClient-6.0.0-0
MQSeriesSamples-6.0.0-0
MQSeriesServer-6.0.0-0(只裝客戶端,是沒有這一項的)
到這里MQ就已經(jīng)安裝完成了。
驗證安裝
1、mqm用戶登錄
創(chuàng)建隊列venus.queue.manager
crtmqm -q venus.queue.manager
啟動隊列管理器
strmqm
啟用MQSC命令
runmqsc
進入環(huán)境后,定義名為ORANGE.QUEUE的本地隊列
define qlocal (orange.queue)
end (停止MQSC)
轉(zhuǎn)到/opt/mqm/samp/bin目錄下,使用amqsput樣本程序來將消息放入隊列,以且使用amqsget樣本程序來從隊列取回消息
dspmq 命令可顯示MQM隊列狀態(tài)
./amqsput ORANGE.QUEUE
(注意,隊列名稱為大寫 否則會找不到隊列,報錯MQOPEN ended with reason code 2023)
輸入一行文字,然后以空行結束,退出
./amqsget ORANGE.QUEUE
可顯示剛才放入隊列的消息,成功提示即證明完成。
MQ的基本操作
創(chuàng)建隊列管理器
crtmqm –q QMgrName
-q是指創(chuàng)建缺省的隊列管理器
刪除隊列管理器
dltmqm QmgrName
啟動隊列管理器
strmqm QmgrName
如果是啟動默認的隊列管理器,可以不帶其名字
停止隊列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 強制停止
顯示隊列管理器
dspmq –m QmgrName
運行MQ命令
runmqsc QmgrName
如果是默認隊列管理器,可以不帶其名字
往隊列中放消息
amqsput QName QmgrName
如果隊列是默認隊列管理器中的隊列,可以不帶其隊列管理器的名字
從隊列中取出消息
amqsget QName QmgrName
如果隊列是默認隊列管理器中的隊列,可以不帶其隊列管理器的名字
啟動通道
runmqchl –c ChlName –m QmgrName
服務器通道不用啟動
啟動偵聽
runmqlsr –t TYPE –p PORT –m QMgrName
停止偵聽
endmqlsr -m QmgrName
下面是在MQ環(huán)境中可以執(zhí)行的MQ命令(即在runmqsc環(huán)境下可以敲的命令)
定義持久信隊列
DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
設定隊列管理器的持久信隊列
ALTER QMGR DEADQ(QNAME)
定義本地隊列
DEFINE QL(QNAME) REPLACE
定義別名隊列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
遠程隊列定義
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAME(QMGRNAME) +
XMITQ(QTNAME)
定義模型隊列
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
定義本地傳輸隊列
DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(PROCESSNAME) REPLACE
創(chuàng)建進程定義
DEFINE PROCESS(PRONAME) +
DESCR(‘STRING’)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
創(chuàng)建發(fā)送方通道
DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+
CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
創(chuàng)建接收方通道
DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
創(chuàng)建服務器連接通道
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
顯示隊列的所有屬性
DISPLAY QUEUE(QNAME)
顯示隊列的所選屬性
DISPLAY QUEUE(QNAME) DESCR GET PUT
DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
顯示隊列管理器的所有屬性
DISPLAY QMGR
顯示進程定義
DISPLAY PROCESS(PRONAME)
更改屬性
ALTER QMGR DESCR(‘NEW DESCRIPTION’)
ALTER QLOCAL(QNAME) PUT(DISABLED)
ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
刪除隊列
DELETE QLOCAL(QNAME)
DELETE QREMOTE(QRNAME)
清除隊列中的所有消息
CLEAR QLOCAL(QNAME)
查看CCSID
DISPLAY QMGR CCSID
修改CCSID為1381
ALTER QMGR CCSID(1381)
以下是一些高級配置的命令:
amqmcert 配置SSL證書
amqmdain 配置windows上的MQ服務
crtmqcvx轉(zhuǎn)換數(shù)據(jù)
dmpmqaut 轉(zhuǎn)儲對象權限管理
dmpmqlog 轉(zhuǎn)儲日志管理
dspmq顯示隊列管理器
dspmqaut 顯示打開對象的權限
dmpmqcap 顯示處理程序容量和處理程序數(shù)
dspmqcsv 顯示命令服務器狀態(tài)
dspmqfls 顯示文件名
dspmqtrc 跟蹤MQ輸出(HP-UNIX LINUX Solaris)
dspmqrtn 顯示事務的詳細信息
endmqcsv 停止隊列管理器上的命令服務器
strmqcsv啟動隊列管理器上的命令服務器
endmqtrc 停止跟蹤
rcdmqimg 向日志寫對象的映像
rcmqobj根據(jù)日志中的映像重新創(chuàng)建一個對象
rsvmqtrn提交或逆序恢復事務
需要增加執(zhí)行權限,具體的核胡操作大致是:
增加權冊仔限:
chmod +x mqlisence.sh
執(zhí)行:
./改姿攔mqlisence.sh -accept
我面給腳本復制定名service放/in/
#!/bin/sh
. /判帶etc/init.d/functions
VERSION=”`basename $0` ver. 0.91″
USAGE=”Usage: `basename $0` | –status-all | \
>”
SERVICE=
SERVICEDIR=”/etc/init.d”
OPTIONS=
if ; then
echo “${USAGE}” >&2
exit 1
fi
cd /
while ; do
case “${1}” in
–help | -h | –h* )
echo “${USAGE}” >&2
exit 0
;;
–version | -V )
echo “${VERSION}” >&2
exit 0
;;
*)
if ; then
cd ${SERVICEDIR}
for SERVICE in * ; do
case “${SERVICE}” in
functions | halt | killall | single| linuxconf| kudzu)
;;
*)
if ! is_ignored_file “${SERVICE}” \
&& ; then
env -i LANG=”$LANG” PATH=”$PATH” TERM=”$TERM” “${SERVICEDIR}/${SERVICE}” status
fi
;;
esac
done
exit 0
elif ; then
SERVICE=”${1}”
if ; then
env -i LANG=”$LANG” PATH=”$PATH” TERM=”$TERM” “巧沖檔${SERVICEDIR}/${SERVICE}” stop
env -i LANG=”$LANG” PATH=”$PATH” TERM=”$TERM” “${SERVICEDIR}/${SERVICE}” start
exit $?
fi
elif ; then
SERVICE=”${1}”
else
OPTIONS=”${OPTIONS} ${1}”
fi
shift
;;
esac
done
if ; then
env -i LANG=”$LANG” PATH=”$PATH” TERM=”$TERM” “${SERVICEDIR}/${SERVICE}” ${OPTIONS}
else
echo $”${SERVICE}: unrecognized service” >&2
exit 1
fi
其實service腳本我linuxservice名改abc等其名字服務 abc 服務 start|stop|status 嘿嘿…
能直接用需要加/in/service或者/etc/profile加變孝亂量
export PATH=/in/:/usr/in/ 記讓變量效啊 source /etc/profile
關于mq linux 編譯的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應用于計算機網(wǎng)絡、設計、SEO優(yōu)化、關鍵詞排名等多種行業(yè)!
分享文章:MQ和Linux平臺下的編譯指南(mqlinux編譯)
路徑分享:http://www.dlmjj.cn/article/dhhdhgp.html


咨詢
建站咨詢
