MQTT和CoAP哪個(gè)最可能成為未來(lái)物聯(lián)網(wǎng)通信標(biāo)準(zhǔn)協(xié)議
MQTT是非常流行的設(shè)備的接入?yún)f(xié)議,包括IBM、亞馬遜、微軟的IoT托管服務(wù)都有支持,而CoAP在這方面幾乎沒(méi)有露面的機(jī)會(huì)。感覺(jué)以下幾點(diǎn)是MQTT優(yōu)于CoAP的主要原因:MQTT基于TCP,在做反控設(shè)備的時(shí)候比UDP更可靠,比如CoAP走3G、4G的時(shí)候甚至需要實(shí)現(xiàn)CoAP over TCP,否則反控很不穩(wěn)定甚至無(wú)法聯(lián)通。MQTT異步Pub/Sub實(shí)現(xiàn),好比發(fā)個(gè)微信,無(wú)需等待對(duì)方確認(rèn)便可以繼續(xù),而不像CoAP那樣必須等待對(duì)方應(yīng)答才能返回的同步模式。MQTT為物聯(lián)網(wǎng)提供了許多體貼的設(shè)計(jì),比如QoS,比如“遺言”的設(shè)計(jì)。篇幅有限,無(wú)法完全枚舉MQTT的優(yōu)越性,建議參考以下文章:MQTT入門篇MQTT進(jìn)階篇MQTT安全篇MQTT實(shí)戰(zhàn)篇當(dāng)然,CoAP在功耗方面有優(yōu)勢(shì),不過(guò)隨著物聯(lián)網(wǎng)設(shè)備特別是網(wǎng)管的計(jì)算能力加強(qiáng),這點(diǎn)應(yīng)該不是主要矛盾。

Kafka和mqtt可以互相替代嗎?物聯(lián)網(wǎng)必須用mqtt嗎?用kafka行嗎?
兩者雖然都是從傳統(tǒng)的Pub/Sub消息系統(tǒng)演化出來(lái)的,但是進(jìn)化的方向不一樣,以下是幾個(gè)比較突出的點(diǎn):Kafka是為了日志收集的場(chǎng)景,拋棄exact once的語(yǔ)義而支持at least once以便得到更高的可擴(kuò)展性。MQTT是為了物聯(lián)網(wǎng)場(chǎng)景而優(yōu)化,不但提供多個(gè)QoS選項(xiàng)(exact once、at least once、at most once),而且還有層級(jí)主題、遺囑等等特性。說(shuō)白了都是傳統(tǒng)消息系統(tǒng)(老爸)的子嗣,只是與不同的場(chǎng)景(老媽)結(jié)合的產(chǎn)物。
MQTT除了物聯(lián)網(wǎng)的應(yīng)用場(chǎng)景外有沒(méi)有其他的有趣的應(yīng)用場(chǎng)景呢
協(xié)議自然是重要的,非常重要,或許IBM意識(shí)到了這一點(diǎn);TCP/IP,HTTP這些重量級(jí)的協(xié)議沒(méi)能分上一杯羹,已經(jīng)是讓這位藍(lán)色巨物很不爽了,物聯(lián)網(wǎng)嘛,新名詞,大約有些做為,于是IBM就搗騰了這么個(gè)東東。在IBM的產(chǎn)品線里,如果mqtt能算產(chǎn)品的話,我覺(jué)得應(yīng)該屬于MQ一類吧,當(dāng)年忽悠的中國(guó)的各大金融巨鱷、運(yùn)營(yíng)商一愣一愣的,估計(jì)現(xiàn)在這種產(chǎn)品不好賣了。在沒(méi)有更好的選擇或者對(duì)不懂行的人來(lái)說(shuō),IBM的很多東東都還是不錯(cuò)的,技術(shù)上的協(xié)議也是這樣,記得金融行業(yè)有個(gè)ISO8583協(xié)議什么的,個(gè)人對(duì)MQTT的定位就是與此類似。談不上有多糟糕,但至少不差,比起12306或者網(wǎng)銀插件來(lái)說(shuō),IBM至少還是不會(huì)讓技術(shù)人員有多反感。但對(duì)于懂行的人來(lái)說(shuō),對(duì)其進(jìn)行過(guò)分吹捧、或者在自己產(chǎn)品里使用,就很是不解了。
