隨著業(yè)務(wù)的快速發(fā)展,業(yè)務(wù)越來越復(fù)雜,服務(wù)之間相互調(diào)用形成復(fù)雜的控制關(guān)系、調(diào)用關(guān)系和數(shù)據(jù)傳遞關(guān)系。服務(wù)聯(lián)系越多,耦合性越強。為了使服務(wù)高內(nèi)聚低耦合,提高服務(wù)的高可用性,就需要對服務(wù)進(jìn)行異步解耦。RocketMQ就是服務(wù)解耦的時候常用一種解決方案。
公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出通海免費做網(wǎng)站回饋大家。介紹RocketMQ是阿里開源的一個優(yōu)秀成熟的產(chǎn)品,我們可以使用RocketMQ作為服務(wù)間異步通信的中間件。隨著業(yè)務(wù)的并發(fā)吞吐量上升,也可以使用RocketMQ削峰限流。RocketMQ架構(gòu)簡單、支持多種業(yè)務(wù)場景,有很強的擴(kuò)展性,在很多大廠都有成功的使用案例,是一個成熟可靠的開源產(chǎn)品,廣泛的應(yīng)用于互聯(lián)網(wǎng)、大數(shù)據(jù)和物聯(lián)網(wǎng)等業(yè)務(wù)場景。
RocketMQ vs. ActiveMQ vs. Kafka特性 | ActiveMQ | Kafka | RocketMQ |
---|---|---|---|
單機吞吐量 | 萬級 | 10萬級,支撐高吞吐 | 10萬級,高吞吐,一般配合大數(shù)據(jù)類的系統(tǒng)進(jìn)行實時數(shù)據(jù)計算、日志采集等場景 |
topic數(shù)量對吞吐量的影響 | - | topic可以達(dá)到幾百/幾千級別,吞吐量會有較小幅度的下降,這是RocketMQ的一大優(yōu)勢,在同等機器下可以支撐大量的topic | topic從幾十到幾百時,吞吐量會大幅度下降,在同等機器下,kafka盡量保證topic數(shù)量不要過多,如果要支撐大規(guī)模的topic,需要增加更多的機器資源 |
時效性 | ms級 | ms級 | ms級 |
可用性 | 高,基于主從架構(gòu)實現(xiàn)高可用 | 非常高,分布式架構(gòu) | 非常高,分布式一個數(shù)據(jù)多個副本,少數(shù)機器宕機,不會丟失數(shù)據(jù),不會導(dǎo)致不可用 |
消息可靠性 | 有較低概率丟失數(shù)據(jù) | 經(jīng)過參數(shù)優(yōu)化配置可以做到0丟失 | 經(jīng)過參數(shù)優(yōu)化配置可以做到0丟失 |
功能支持 | MQ領(lǐng)域功能完善 | MQ功能較為完善,基本分布式,擴(kuò)展性好 | 功能較簡單,主要支持簡單的MQ功能,在大數(shù)據(jù)領(lǐng)域的實時計算以及日志采集被大規(guī)模使用 |
其他 | 起步早,并發(fā)場景經(jīng)驗少 | 社區(qū)活躍度高 | 阿里開發(fā)開源,社區(qū)活躍度高 |
我們帶著幾個問題去動手實踐,加深印象。
1、從github下載RocketMQ 壓縮包,github地址:https://github.com/apache/rocketmq
2、解壓壓縮包到opt目錄下
unzip rocketmq-all-4.9.4-bin-release.zip -d /opt
3、進(jìn)入到解壓目錄下的bin文件夾
cd /opt/rocketmq-4.9.4/bin
[root@centos rocketmq-all-4.9.4-bin-release]# ls
cachedog.sh dledger mqadmin.cmd mqbroker.numanode0 mqbroker.numanode3 mqshutdown play.cmd runbroker.cmd runserver.sh tools.cmd
cleancache.sh export.sh mqbroker mqbroker.numanode1 mqnamesrv mqshutdown.cmd play.sh runbroker.sh setcache.sh tools.sh
cleancache.v1.sh mqadmin mqbroker.cmd mqbroker.numanode2 mqnamesrv.cmd os.sh README.md runserver.cmd startfsrv.sh
[root@centos bin]#
4、在第一個服務(wù)器節(jié)點啟動nameserver
[root@centos bin]# ./mqnamesrv
OpenJDK 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
5、在第一個服務(wù)器節(jié)點啟動broker
[root@centos bin]# ./mqbroker -n localhost:9876
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /opt/rocketmq-all-4.9.4-bin-release/bin/hs_err_pid3228.log
啟動的時候報錯了,提示內(nèi)存分配過大,因為本地虛擬機配置的是2G內(nèi)存,進(jìn)入runbroker.sh 修改配置,找到內(nèi)存配置,改為1G
vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"
保存配置后,重新啟動broker,啟動成功
THE END.你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧