標題:
折騰MQ
[打印本頁]
作者:
51hei不
時間:
2016-6-19 01:53
標題:
折騰MQ
最近做一個中字頭的項目,甲方指定要用MQ,至于為啥要用MQ,反正party的企業(yè)不差錢,哪個貴就用哪個準沒錯的。從我們做技術(shù)的角度來看,客戶這點小需求整個MQ絕對是浪費,想像一下村子里的土豪開個保時捷跑車在鄉(xiāng)間土路上顯擺的感覺。。。
MQ屬于高富帥產(chǎn)品,以前沒怎么用過,項目開始了一邊google一邊折騰,然后開始漫長踩坑經(jīng)歷。
先總結(jié)一下,防止以后忘記再踩次坑,那就是傻到自虐了。
MQ有幾個坑,隨便記記:
1.隊列管理器
下面管理了一堆隊列和相關(guān)屬性。
2.通道
用于兩個MQ系統(tǒng)連接,
3.隊列
隊列有遠程隊列,本地隊列。本地隊列用于讀取消息,遠程隊列用于發(fā)送消息
4.偵聽器
可以配不同的偵聽端口。
5.字符編碼問題
DISPLAY QMGR CCSID ;查看字符編碼
ALERT QMGR CCSID(1381) ;設(shè)置字符編碼
1381是指gb2312,1208是指utf8
如果中文亂碼,可以雙方設(shè)置成相同編碼再試試
6.消息格式問題
缺省用NONE,表示二進制
如果用STRING類型,需要配置字符和編碼轉(zhuǎn)換規(guī)則,如果不配用隊列管理器上的配置
7.編譯連接問題
老大的一個坑,在這上面浪費了2天。
編譯連接庫分兩個版本,一個用于server,一個是client版本
源代碼一樣一樣,連接不同的庫決定你的程序功能。
如果連接錯了,連接報2058錯。
還有,連接庫還分多線程版本和單線程版本,調(diào)錯的話,多線程會報啥一個句柄同一時間只能被一個調(diào)之類的錯,錯誤號忘了
8.MQ的日志
看不太懂,僅用參考
/var/mqm/errors
/var/mqm/qmgr/xxx/errors
最后噴一下IBM,雖然MQ是全向全行業(yè)的,但我覺得主流人群肯定有主流用法,只要把這些人的用法描敘清楚就好了,至少要突出一點。
現(xiàn)在他們所有的問題都有文檔,但文檔是扁平的,沒有主次之分,乍一看,相當于沒文檔,有用的信息全部被噪音文檔干擾。
最后實在搞不掂了,通過關(guān)系找到IBM的工程師,跟人家沒說幾句話就給我一個文檔連接,照著一改就好了,浪費我們多少時間啊,全世界范圍內(nèi)不知道有多少人浪費了多少時間在這里面。我可以肯定我遇到的問題其它人也經(jīng)常遇到,IBM非常有必要整理一份最常見問題列表。
---------------
又過了二個月,開始續(xù)集,繼續(xù)折騰。 在50M帶寬的40ms延時網(wǎng)絡(luò)上,server對server,單通道只能收發(fā)600-700KB,你妹啊,你在逗我玩吧。找了IBM北京、IBM中國試驗室,IBM美國,來來回回換了幾個工程師現(xiàn)場、遠程,通通搞不掂,告訴我網(wǎng)絡(luò)有問題。然后又解釋不了為啥我寫的單連接異步程序能把整個帶寬打滿。 難道真的是盛名之下,其實難副?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1