Kafka
kafka是個(gè)日志處理緩沖組件辜窑,在大數(shù)據(jù)信息處理中使用钩述。和傳統(tǒng)的消息隊(duì)列相比較簡(jiǎn)化了隊(duì)列結(jié)構(gòu)和功能,以流形式處理存儲(chǔ)(持久化)消息(主要是日志)穆碎。日志數(shù)據(jù)量巨大切距,處理組件一般會(huì)處理不過(guò)來(lái),所以作為緩沖曾的kafka惨远,支持巨大吞吐量谜悟。為了防止信息都是,其消息被消防后不直接丟棄北秽,要多存儲(chǔ)一段時(shí)間葡幸,等過(guò)期時(shí)間過(guò)了才丟棄。這是mq和redis不能具備的贺氓。
主要特點(diǎn)入下:
巨型存儲(chǔ)量: 支持TB甚至PB級(jí)別數(shù)據(jù)蔚叨。
高吞吐,高IO:一般配置的服務(wù)器能實(shí)現(xiàn)單機(jī)每秒100K條以上消息的傳輸。
消息分區(qū)蔑水,分布式消費(fèi):能保消息順序傳輸邢锯。 支持離線數(shù)據(jù)處理和實(shí)時(shí)數(shù)據(jù)處理。
Scale out:支持在線水平擴(kuò)展搀别,以支持更大數(shù)據(jù)處理量丹擎。
redis
redis只是提供一個(gè)高性能的、原子操作內(nèi)存鍵值隊(duì)歇父,具有高速訪問(wèn)能力蒂培,可用做消息隊(duì)列的存儲(chǔ),但是不具備消息隊(duì)列的任何功能和邏輯榜苫,要作做為消息隊(duì)列來(lái)實(shí)現(xiàn)的話护戳,功能和邏輯要通過(guò)上層應(yīng)用自己實(shí)現(xiàn)。
MQ垂睬,消息隊(duì)列媳荒。
我們以是RabbitMQ為例介紹。它是用Erlang語(yǔ)言開(kāi)發(fā)的開(kāi)源的消息隊(duì)列驹饺,支持多種協(xié)議肺樟,包括AMQP,XMPP, SMTP, STOMP逻淌。適合于企業(yè)級(jí)的開(kāi)發(fā)么伯。
MQ支持Broker構(gòu)架,消息發(fā)送給客戶端時(shí)需要在中心隊(duì)列排隊(duì)卡儒。對(duì)路由田柔,負(fù)載均衡或者數(shù)據(jù)持久化都有很好的支持。
其他更多消息隊(duì)列
還有ActiveMq骨望,ZeroMq等硬爆。功能基本上大同小異。專門測(cè)結(jié)果擎鸠,并發(fā)吞吐TPS比較缀磕,ZeroMq 最好,RabbitMq 次之劣光, ActiveMq 最差袜蚕。