国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

建設(shè)銀行手機(jī)查詢網(wǎng)站合肥seo優(yōu)化排名公司

建設(shè)銀行手機(jī)查詢網(wǎng)站,合肥seo優(yōu)化排名公司,美女做基網(wǎng)站,建設(shè)規(guī)范文件在哪個(gè)網(wǎng)站發(fā)布RabbitMQ RabbitMQ是實(shí)現(xiàn)AMQP協(xié)議(0.9.1) 的消息中間件的一種,由RabbitMQ Technologies Ltd開(kāi)發(fā)并且提供商業(yè)支持的,最初起源于金融系統(tǒng),服務(wù)器端用Erlang語(yǔ)言編寫,用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、…

RabbitMQ

RabbitMQ是實(shí)現(xiàn)AMQP協(xié)議(0.9.1) 的消息中間件的一種,由RabbitMQ Technologies Ltd開(kāi)發(fā)并且提供商業(yè)支持的,最初起源于金融系統(tǒng),服務(wù)器端用Erlang語(yǔ)言編寫,用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。

image.png

RabbitMQ基本概念

  • Broker: 簡(jiǎn)單來(lái)說(shuō)就是消息隊(duì)列服務(wù)器實(shí)體
  • Exchange: 消息交換機(jī),它指定消息按什么規(guī)則,路由到哪個(gè)隊(duì)列
  • Queue: 消息隊(duì)列載體,每個(gè)消息都會(huì)被投入到一個(gè)或多個(gè)隊(duì)列
  • Binding: 綁定,它的作用就是把exchange和queue按照路由規(guī)則綁定起來(lái)
  • Routing Key: 路由關(guān)鍵字,exchange根據(jù)這個(gè)關(guān)鍵字進(jìn)行消息投遞
  • VHost: vhost 可以理解為虛擬 broker ,即 mini-RabbitMQ server。其內(nèi)部均含有獨(dú)立的 queue、exchange 和 binding 等,但最最重要的是,其擁有獨(dú)立的權(quán)限系統(tǒng),可以做到 vhost 范圍的用戶控制。當(dāng)然,從 RabbitMQ 的全局角度,vhost 可以作為不同權(quán)限隔離的手段(一個(gè)典型的例子就是不同的應(yīng)用可以跑在不同的 vhost 中)。
  • Producer: 消息生產(chǎn)者,就是投遞消息的程序
  • Consumer: 消息消費(fèi)者,就是接受消息的程序
  • Channel: 消息通道,在客戶端的每個(gè)連接里,可建立多個(gè)channel,每個(gè)channel代表一個(gè)會(huì)話任務(wù)

由Exchange、Queue、RoutingKey三個(gè)才能決定一個(gè)從Exchange到Queue的唯一的線路。

RabbitMQ處理流程

1.Producer會(huì)先建立Channel,建立到Broker上Virtual Host的連接,接下來(lái)就可以向這個(gè)Virtual Host中的Exchange發(fā)送消息。

2.Producer把消息發(fā)布到Exchange上,消息最終到達(dá)隊(duì)列并被消費(fèi)者接收,而B(niǎo)inding決定交換器的消息應(yīng)該發(fā)送到那個(gè)隊(duì)列。Exchange能夠處理消息的前提是,它至少已經(jīng)和某個(gè)Queue或者另外的Exchange形成了綁定關(guān)系,并設(shè)置好了到這些Queue和Excahnge的路由規(guī)則。在Exchange收到消息后,會(huì)根據(jù)設(shè)置的路由規(guī)則,將消息發(fā)送到符合要求的Queue或者Exchange中(路由規(guī)則與Message中的Routing Key屬性配合使用)。

3.當(dāng)Queue收到消息后,會(huì)進(jìn)行如下處理:

  • 如果當(dāng)前沒(méi)有Consumer的Channel連接到這個(gè)Queue,那么Queue將會(huì)把這條消息進(jìn)行存儲(chǔ),直到有Channel被創(chuàng)建。
  • 如果已經(jīng)有Channel連接到這個(gè)Queue,那么消息將會(huì)按順序發(fā)送給這個(gè)Channel。

4.當(dāng)Consumer收到消息后,就可以進(jìn)行消息的處理:

  • Consumer在完成某一條消息的處理后,將需要手動(dòng)的發(fā)送一條ACK消息到對(duì)應(yīng)的Queue,也可以設(shè)置為自動(dòng)發(fā)送或者無(wú)需發(fā)送。
  • Queue在接收到這條ACK信息后,才認(rèn)為這條消息處理成功,并將這條消息從Queue中移除。
  • 如果在對(duì)應(yīng)的Channel斷開(kāi)后,Queue都沒(méi)有這條消息的ACK信息,這條消息將會(huì)重新被發(fā)送給另外的Channel。也可以直接發(fā)送NACK信息,這樣這條消息將會(huì)立即歸隊(duì),并發(fā)送給另外的Channel。

RabbitMQ的工作模式

simple模式(即最簡(jiǎn)單的收發(fā)模式)

image.png

1.消息產(chǎn)生消息,將消息放入隊(duì)列

2.消息的消費(fèi)者(consumer) 監(jiān)聽(tīng) 消息隊(duì)列,如果隊(duì)列中有消息,就消費(fèi)掉,消息被拿走后,自動(dòng)從隊(duì)列中刪除(隱患 消息可能沒(méi)有被消費(fèi)者正確處理,已經(jīng)從隊(duì)列中消失了,造成消息的丟失,這里可以設(shè)置成手動(dòng)的ack,但如果設(shè)置成手動(dòng)ack,處理完后要及時(shí)發(fā)送ack消息給隊(duì)列,否則會(huì)造成內(nèi)存溢出)。

work工作模式(資源的競(jìng)爭(zhēng))

image.png

1.消息產(chǎn)生者將消息放入隊(duì)列。

2.消費(fèi)者可以有多個(gè),消費(fèi)者1,消費(fèi)者2同時(shí)監(jiān)聽(tīng)同一個(gè)隊(duì)列,消息被消費(fèi)。C1 C2共同爭(zhēng)搶當(dāng)前的消息隊(duì)列內(nèi)容,誰(shuí)先拿到誰(shuí)負(fù)責(zé)消費(fèi)消息(隱患:高并發(fā)情況下,默認(rèn)會(huì)產(chǎn)生某一個(gè)消息被多個(gè)消費(fèi)者共同使用,可以設(shè)置一個(gè)開(kāi)關(guān)(syncronize) 保證一條消息只能被一個(gè)消費(fèi)者使用)。

publish/subscribe發(fā)布訂閱(共享資源)

image.png

1、每個(gè)消費(fèi)者監(jiān)聽(tīng)自己的隊(duì)列;

2、生產(chǎn)者將消息發(fā)給broker,由交換機(jī)將消息轉(zhuǎn)發(fā)到綁定此交換機(jī)的每個(gè)隊(duì)列,每個(gè)綁定交換機(jī)的隊(duì)列都將接收到消息。

routing路由模式

image.png

1.消息生產(chǎn)者將消息發(fā)送給交換機(jī)按照路由判斷,路由是字符串(info) 當(dāng)前產(chǎn)生的消息攜帶路由字符(對(duì)象的方法),交換機(jī)根據(jù)路由的key,只能匹配上路由key對(duì)應(yīng)的消息隊(duì)列,對(duì)應(yīng)的消費(fèi)者才能消費(fèi)消息;

2.根據(jù)業(yè)務(wù)功能定義路由字符串

3.從系統(tǒng)的代碼邏輯中獲取對(duì)應(yīng)的功能字符串,將消息任務(wù)扔到對(duì)應(yīng)的隊(duì)列中。

4.業(yè)務(wù)場(chǎng)景:error 通知;EXCEPTION;錯(cuò)誤通知的功能;傳統(tǒng)意義的錯(cuò)誤通知;客戶通知;利用key路由,可以將程序中的錯(cuò)誤封裝成消息傳入到消息隊(duì)列中,開(kāi)發(fā)者可以自定義消費(fèi)者,實(shí)時(shí)接收錯(cuò)誤;

topic 主題模式(路由模式的一種)

image.png

1.星號(hào)(*)井號(hào)(#)代表通配符

2.星號(hào)(*)代表多個(gè)單詞,井號(hào)(#)代表一個(gè)單詞

3.路由功能添加模糊匹配

4.消息產(chǎn)生者產(chǎn)生消息,把消息交給交換機(jī)

5.交換機(jī)根據(jù)key的規(guī)則模糊匹配到對(duì)應(yīng)的隊(duì)列,由隊(duì)列的監(jiān)聽(tīng)消費(fèi)者接收消息消費(fèi)

RabbitMQ優(yōu)點(diǎn)

  • 由于erlang語(yǔ)言的特性,mq 性能較好,高并發(fā);
  • 健壯、穩(wěn)定、易用、跨平臺(tái)、支持多種語(yǔ)言、文檔齊全;
  • 有消息確認(rèn)機(jī)制和持久化機(jī)制,可靠性高;
  • 高度可定制的路由;
  • 管理界面較豐富,在互聯(lián)網(wǎng)公司也有較大規(guī)模的應(yīng)用;
  • 社區(qū)活躍度高;

RabbitMQ缺點(diǎn)

  • 盡管結(jié)合erlang語(yǔ)言本身的并發(fā)優(yōu)勢(shì),性能較好,但是不利于做二次開(kāi)發(fā)和維護(hù);
  • 實(shí)現(xiàn)了代理架構(gòu),意味著消息在發(fā)送到客戶端之前可以在中央節(jié)點(diǎn)上排隊(duì)。此特性使得RabbitMQ易于使用和部署,但是使得其運(yùn)行速度較慢,因?yàn)橹醒牍?jié)點(diǎn)增加了延遲,消息封裝后也比較大;
  • 需要學(xué)習(xí)比較復(fù)雜的接口和協(xié)議,學(xué)習(xí)和維護(hù)成本較高;

Kafka

Kafka是由Apache軟件基金會(huì)開(kāi)發(fā)的一個(gè)開(kāi)源流處理平臺(tái),由Scala和Java編寫。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)。 這種動(dòng)作(網(wǎng)頁(yè)瀏覽,搜索和其他用戶的行動(dòng))是在現(xiàn)代網(wǎng)絡(luò)上的許多社會(huì)功能的一個(gè)關(guān)鍵因素。 這些數(shù)據(jù)通常是由于吞吐量的要求而通過(guò)處理日志和日志聚合來(lái)解決。 對(duì)于像Hadoop的一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實(shí)時(shí)處理的限制,這是一個(gè)可行的解決方案。Kafka的目的是通過(guò)Hadoop的并行加載機(jī)制來(lái)統(tǒng)一線上和離線的消息處理,也是為了通過(guò)集群來(lái)提供實(shí)時(shí)的消息。

image.png

Kafka基本概念

  • Broker

    消息中間件處理節(jié)點(diǎn),一個(gè)Kafka節(jié)點(diǎn)就是一個(gè)Broker,一個(gè)或者多個(gè)Broker可以組成一個(gè)Kafka集群

  • Topic

    每條發(fā)布到Kafka集群的消息都有一個(gè)類別,這個(gè)類別被稱為Topic。(物理上不同Topic的消息分開(kāi)存儲(chǔ),邏輯上一個(gè)Topic的消息雖然保存于一個(gè)或多個(gè)broker上但用戶只需指定消息的Topic即可生產(chǎn)或消費(fèi)數(shù)據(jù)而不必關(guān)心數(shù)據(jù)存于何處)

  • Partition

    用于存放消息的隊(duì)列,存放的消息都是有序的,同一主題可以分多個(gè)Partition,如分多個(gè)Partiton時(shí),同樣會(huì)以如partition1存放1、3、5消息,partition2存放2、4、6消息

  • Producer

    消息生產(chǎn)者,向Broker發(fā)送消息的客戶端

  • Consumer

    消息消費(fèi)者,從Broker讀取消息的客戶端,Consumer是通過(guò)offset進(jìn)行標(biāo)識(shí)消息被消費(fèi)的位置

  • Consumer Group

    每個(gè)Consumer屬于一個(gè)特定的Consumer Group,一條消息可以發(fā)送到多個(gè)不同的Consumer Group,但是同一個(gè)Consumer Group中只能有一個(gè)Consumer能夠消費(fèi)該消息

Kafka數(shù)據(jù)處理步驟

  • Producer產(chǎn)生消息,發(fā)送到Broker中
  • Leader狀態(tài)的Broker接收消息,寫入到相應(yīng)topic中
  • Leader狀態(tài)的Broker接收完畢以后,傳給Follow狀態(tài)的Broker作為副本備份
  • Consumer消費(fèi)Broker中的消息

Kafka優(yōu)點(diǎn)

  • 客戶端語(yǔ)言豐富,支持java、.net、php、ruby、python、go等多種語(yǔ)言;
  • 性能卓越,單機(jī)寫入TPS約在百萬(wàn)條/秒,消息大小10個(gè)字節(jié);
  • 提供完全分布式架構(gòu), 并有replica機(jī)制, 擁有較高的可用性和可靠性, 理論上支持消息無(wú)限堆積;
  • 支持批量操作;
  • 消費(fèi)者采用Pull方式獲取消息, 消息有序, 通過(guò)控制能夠保證所有消息被消費(fèi)且僅被消費(fèi)一次;
  • 有優(yōu)秀的第三方Kafka Web管理界面Kafka-Manager;
  • 在日志領(lǐng)域比較成熟,被多家公司和多個(gè)開(kāi)源項(xiàng)目使用;

Kafka缺點(diǎn)

  • Kafka單機(jī)超過(guò)64個(gè)隊(duì)列/分區(qū),Load會(huì)發(fā)生明顯的飆高現(xiàn)象,隊(duì)列越多,load越高,發(fā)送消息響應(yīng)時(shí)間變長(zhǎng)
  • 使用短輪詢方式,實(shí)時(shí)性取決于輪詢間隔時(shí)間;
  • 消費(fèi)失敗不支持重試;
  • 支持消息順序,但是一臺(tái)代理宕機(jī)后,就會(huì)產(chǎn)生消息亂序;
  • 社區(qū)更新較慢;

RocketMQ

RocketMQ 是阿里巴巴在2012年開(kāi)源的分布式消息中間件,目前已經(jīng)捐贈(zèng)給 Apache 軟件基金會(huì),并于2017年9月25日成為 Apache 的頂級(jí)項(xiàng)目。作為經(jīng)歷過(guò)多次阿里巴巴雙十一這種“超級(jí)工程”的洗禮并有穩(wěn)定出色表現(xiàn)的國(guó)產(chǎn)中間件,以其高性能、低延時(shí)和高可靠等特性近年來(lái)已經(jīng)也被越來(lái)越多的國(guó)內(nèi)企業(yè)使用。

image.png

RocketMQ基本概念

生產(chǎn)者組(Producer)

負(fù)責(zé)產(chǎn)生消息,生產(chǎn)者向消息服務(wù)器發(fā)送由業(yè)務(wù)應(yīng)用程序系統(tǒng)生成的消息。 RocketMQ 提供了三種方式發(fā)送消息:同步、異步和單向。

名稱服務(wù)器(NameServer)

主要負(fù)責(zé)對(duì)于源數(shù)據(jù)的管理,包括了對(duì)于Topic和路由信息的管理。

NameServer 被設(shè)計(jì)成幾乎無(wú)狀態(tài)的,可以橫向擴(kuò)展,節(jié)點(diǎn)之間相互之間無(wú)通信,通過(guò)部署多臺(tái)機(jī)器來(lái)標(biāo)記自己是一個(gè)偽集群。每個(gè) Broker 在啟動(dòng)的時(shí)候會(huì)到 NameServer 注冊(cè),Producer 在發(fā)送消息前會(huì)根據(jù) Topic 到 NameServer 獲取到 Broker 的路由信息,Consumer 也會(huì)定時(shí)獲取 Topic 的路由信息。所以從功能上看應(yīng)該是和 ZooKeeper 差不多,RocketMQ 的早期版本確實(shí)是使用的 ZooKeeper ,后來(lái)改為了自己實(shí)現(xiàn)的 NameServer 。

消息服務(wù)器(Broker)

是消息存儲(chǔ)中心,主要作用是接收來(lái)自 Producer 的消息并存儲(chǔ), Consumer 從這里取得消息。它還存儲(chǔ)與消息相關(guān)的元數(shù)據(jù),包括用戶組、消費(fèi)進(jìn)度偏移量、隊(duì)列信息等。從部署結(jié)構(gòu)圖中可以看出 Broker 有 Master 和 Slave 兩種類型,Master 既可以寫又可以讀,Slave不可以寫只可以讀。從物理結(jié)構(gòu)上看 Broker 的集群部署方式有四種:單 Master 、多 Master 、多 Master 多 Slave(同步刷盤)、多 Master多 Slave(異步刷盤)。

消費(fèi)者組(Consumer)

負(fù)責(zé)消費(fèi)消息,消費(fèi)者從消息服務(wù)器拉取信息并將其輸入用戶應(yīng)用程序,支持PUSH和PULL兩種消費(fèi)模式,支持集群消費(fèi)和廣播消息,提供實(shí)時(shí)的消息訂閱機(jī)制。

  • Pull:拉取型消費(fèi)者(Pull Consumer)主動(dòng)從消息服務(wù)器拉取信息,只要批量拉取到消息,用戶應(yīng)用就會(huì)啟動(dòng)消費(fèi)過(guò)程,所以 Pull 稱為主動(dòng)消費(fèi)型。
  • Push:推送型消費(fèi)者(Push Consumer)封裝了消息的拉取、消費(fèi)進(jìn)度和其他的內(nèi)部維護(hù)工作,將消息到達(dá)時(shí)執(zhí)行的回調(diào)接口留給用戶應(yīng)用程序來(lái)實(shí)現(xiàn)。所以 Push 稱為被動(dòng)消費(fèi)類型,但從實(shí)現(xiàn)上看還是從消息服務(wù)器中拉取消息,不同于 Pull 的是 Push 首先要注冊(cè)消費(fèi)監(jiān)聽(tīng)器,當(dāng)監(jiān)聽(tīng)器處觸發(fā)后才開(kāi)始消費(fèi)消息。

RocketMQ特性

1.靈活可擴(kuò)展性 : 天然支持集群,其核心四組件(Name Server、Broker、Producer、Consumer)每一個(gè)都可以在沒(méi)有單點(diǎn)故障的情況下進(jìn)行水平擴(kuò)展。

2.海量消息堆積: 采用零拷貝原理實(shí)現(xiàn)超大的消息的堆積能力,據(jù)說(shuō)單機(jī)已可以支持億級(jí)消息堆積,而且在堆積了這么多消息后依然保持寫入低延遲。

3.順序消息: 可以保證消息消費(fèi)者按照消息發(fā)送的順序?qū)ο⑦M(jìn)行消費(fèi)。順序消息分為全局有序和局部有序,一般推薦使用局部有序,即生產(chǎn)者通過(guò)將某一類消息按順序發(fā)送至同一個(gè)隊(duì)列來(lái)實(shí)現(xiàn)。

4.消息過(guò)濾: 分為在服務(wù)器端過(guò)濾和在消費(fèi)端過(guò)濾。服務(wù)器端過(guò)濾時(shí)可以按照消息消費(fèi)者的要求做過(guò)濾,優(yōu)點(diǎn)是減少不必要消息傳輸,缺點(diǎn)是增加了消息服務(wù)器的負(fù)擔(dān),實(shí)現(xiàn)相對(duì)復(fù)雜。消費(fèi)端過(guò)濾則完全由具體應(yīng)用自定義實(shí)現(xiàn),這種方式更加靈活,缺點(diǎn)是很多無(wú)用的消息會(huì)傳輸給消息消費(fèi)者。

5.事務(wù)消息: 除了支持普通消息,順序消息之外還支持事務(wù)消息,這個(gè)特性對(duì)于分布式事務(wù)來(lái)說(shuō)提供了又一種解決思路。

6.消息回溯: 是指消費(fèi)者已經(jīng)消費(fèi)成功的消息,由于業(yè)務(wù)上需求需要重新消費(fèi),RocketMQ 支持按照時(shí)間回溯消費(fèi),時(shí)間維度精確到毫秒,可以向前回溯,也可以向后回溯。

RocketMQ優(yōu)點(diǎn)

  • 單機(jī)支持 1 萬(wàn)以上持久化隊(duì)列
  • RocketMQ 的所有消息都是持久化的,先寫入系統(tǒng) PAGECACHE,然后刷盤,可以保證內(nèi)存與磁盤都有一份數(shù)據(jù),訪問(wèn)時(shí),直接從內(nèi)存讀取。
  • 模型簡(jiǎn)單,接口易用(JMS 的接口很多場(chǎng)合并不太實(shí)用);
  • 性能非常好,可以大量堆積消息在broker中;
  • 支持多種消費(fèi),包括集群消費(fèi)、廣播消費(fèi)等。
  • 各個(gè)環(huán)節(jié)分布式擴(kuò)展設(shè)計(jì),主從HA;
  • 開(kāi)發(fā)度較活躍,版本更新很快。

RocketMQ缺點(diǎn)

  • 支持的客戶端語(yǔ)言不多,目前是java及c++,其中c++不成熟;
  • RocketMQ社區(qū)關(guān)注度及成熟度不高;
  • 沒(méi)有web管理界面,提供了一個(gè)CLI(命令行界面)管理工具帶來(lái)查詢、管理和診斷各種問(wèn)題;
  • 沒(méi)有在 mq 核心中去實(shí)現(xiàn)JMS等接口;

ActiveMQ

ActiveMQ是由Apache出品,旨在為應(yīng)用程序提供高效、可擴(kuò)展、穩(wěn)定、安全的企業(yè)級(jí)消息通信,它是一個(gè)完全支持JMS1.1和J2EE 1.4規(guī)范的JMS Provider實(shí)現(xiàn),比如 JMX 管理、主從管理、消息組通信、消息優(yōu)先級(jí)、延遲接收消息、虛擬接收者、消息持久化、消息隊(duì)列監(jiān)控等等。它非??焖?#xff0c;支持多種語(yǔ)言的客戶端和協(xié)議,而且可以非常容易的嵌入到企業(yè)的應(yīng)用環(huán)境中,并有許多高級(jí)功能。
和上面的mq類似,主要的基本組件有Broker、Producer、Consumer、Topic、Queue、Message

ActiveMQ優(yōu)點(diǎn)

  • 跨平臺(tái)(JAVA編寫與平臺(tái)無(wú)關(guān)有,ActiveMQ幾乎可以運(yùn)行在任何的JVM上)
  • 可以用JDBC:可以將數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)。雖然使用JDBC會(huì)降低ActiveMQ的性能,但是數(shù)據(jù)庫(kù)一直都是開(kāi)發(fā)人員最熟悉的存儲(chǔ)介質(zhì)。將消息存到數(shù)據(jù)庫(kù),看得見(jiàn)摸得著。而且公司有專門的DBA去對(duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)優(yōu),主從分離;
  • 支持JMS :支持JMS的統(tǒng)一接口;
  • 支持自動(dòng)重連;
  • 有安全機(jī)制:支持基于shiro,jaas等多種安全配置機(jī)制,可以對(duì)Queue/Topic進(jìn)行認(rèn)證和授權(quán)。
  • 監(jiān)控完善:擁有完善的監(jiān)控,包括Web Console,JMX,Shell命令行,Jolokia的REST API;
  • 界面友善:提供的Web Console可以滿足大部分情況,還有很多第三方的組件可以使用,如hawtio;

ActiveMQ缺點(diǎn)

  • 社區(qū)活躍度不及RabbitMQ高;
  • 根據(jù)其他用戶反饋,會(huì)出莫名其妙的問(wèn)題,會(huì)丟失消息;
  • 對(duì)5.x的維護(hù)較少;
  • 不適合用于上千個(gè)隊(duì)列的應(yīng)用場(chǎng)景;

RabbitMQ、Kafka、RocketMQ、ActiveMQ對(duì)比

特性RabbitMQKafkaRocketMQActiveMQ
開(kāi)發(fā)語(yǔ)言ErlangScala&JavaJavaJava
客戶端支持官方支持Erlang、Java、Ruby等,社區(qū)產(chǎn)出多語(yǔ)言API,幾乎支持所有常用語(yǔ)言官方支持Java,社區(qū)有多語(yǔ)言版本,如PHP、Python、Go、C/C++、Ruby、NodeJs等Java、C++Java、C/C++、Python、PHP、Perl、.net等
協(xié)議支持AMQP、XMPP、SMTP、SMTOP自定義協(xié)議,社區(qū)提供了HTTP協(xié)議支持自定義協(xié)議,社區(qū)提供JMSOpenWire、SMTOP、REST、XMPP、AMQP
可用性高,基于主從架構(gòu)實(shí)現(xiàn)高可用很高,分布式,一個(gè)數(shù)據(jù)多個(gè)副本,少數(shù)機(jī)器宕機(jī),不會(huì)丟失數(shù)據(jù),不會(huì)導(dǎo)致不可用很高,分布式架構(gòu)高,基于主從架構(gòu)實(shí)現(xiàn)高可用
集群支持支持支持支持
負(fù)載均衡支持支持支持支持
單機(jī)吞吐量萬(wàn)級(jí)十萬(wàn)級(jí)十萬(wàn)級(jí)萬(wàn)級(jí)
topic數(shù)量對(duì)吞吐量的影響-topic從幾十到幾百個(gè)時(shí)候,吞吐量會(huì)大幅度下降,因?yàn)镵afka的每個(gè)Topic、每個(gè)分區(qū)都會(huì)對(duì)應(yīng)一個(gè)物理文件,若需要支撐大規(guī)模的topic,則需要增加更多的機(jī)器資源topic達(dá)到幾百/幾千的級(jí)別后,吞吐量會(huì)有較小幅度的下降,在同等機(jī)器下,可以支撐大量的 topic-
消息批量操作不支持支持支持支持
消息推拉模式pull/push均支持pullpull/push均支持pull/push均支持
消息可靠性支持最少投遞一次支持最少投遞一次支持最少投遞一次有較低的概率丟失數(shù)據(jù)
消息延遲微秒級(jí) (最快)毫秒級(jí)毫秒級(jí)毫秒級(jí)
持久化能力內(nèi)存、文件,支持?jǐn)?shù)據(jù)堆積,但影響生產(chǎn)速率磁盤文件,只要容量夠,可以做到無(wú)限堆積磁盤文件內(nèi)存、文件、數(shù)據(jù)庫(kù)
事務(wù)消息不支持不支持支持支持
死信支持不支持支持支持
消息回放不支持支持offset維度回放支持offset維度回放不支持
延遲隊(duì)列支持不支持支持支持
http://m.aloenet.com.cn/news/42710.html

相關(guān)文章:

  • 在北京大學(xué)生做家教的網(wǎng)站關(guān)鍵詞調(diào)詞平臺(tái)哪個(gè)好
  • 東莞電商頁(yè)面設(shè)計(jì)公司福州短視頻seo機(jī)會(huì)
  • 杭州網(wǎng)站建設(shè)wguser域名歸屬查詢
  • 優(yōu)秀網(wǎng)站頁(yè)面設(shè)計(jì)圖片蘭州模板網(wǎng)站seo價(jià)格
  • 直播網(wǎng)站怎么做站長(zhǎng)工具百度百科
  • 網(wǎng)站建好了怎么做淘寶客seo指導(dǎo)
  • 偽類網(wǎng)站hyein seo官網(wǎng)
  • 網(wǎng)站 關(guān)于我們 模板免費(fèi)網(wǎng)絡(luò)營(yíng)銷推廣軟件
  • 網(wǎng)站開(kāi)發(fā)都需要學(xué)什么深圳搜索競(jìng)價(jià)賬戶托管
  • java企業(yè)網(wǎng)站商丘seo博客
  • 如何購(gòu)買網(wǎng)站俄羅斯搜索引擎瀏覽器
  • 網(wǎng)頁(yè)制作圖片模板整站seo排名外包
  • 百度搜索優(yōu)化建議seo的基礎(chǔ)優(yōu)化
  • 網(wǎng)站都是什么軟件做的百度營(yíng)銷推廣
  • 賀州網(wǎng)絡(luò)推廣青島seo建站
  • 做翻糖的網(wǎng)站百度分公司
  • seo網(wǎng)站建設(shè)微域名解析網(wǎng)站
  • 寶安網(wǎng)站設(shè)計(jì)排名網(wǎng)店代運(yùn)營(yíng)騙局流程
  • 京東網(wǎng)站建設(shè)百度高級(jí)搜索網(wǎng)址
  • 哪個(gè)軟件做網(wǎng)站最簡(jiǎn)單長(zhǎng)沙專業(yè)競(jìng)價(jià)優(yōu)化首選
  • 安卓手機(jī)app下載網(wǎng)站優(yōu)化種類
  • 網(wǎng)站標(biāo)題特殊符號(hào)長(zhǎng)沙百度快速優(yōu)化排名
  • asp net做網(wǎng)站視頻購(gòu)物網(wǎng)站哪個(gè)最好
  • 做雜志的模板下載網(wǎng)站有哪些貴陽(yáng)百度推廣電話
  • 網(wǎng)站交互效果網(wǎng)絡(luò)營(yíng)銷的步驟
  • 廈門國(guó)外網(wǎng)站建設(shè)公司廣州競(jìng)價(jià)托管代運(yùn)營(yíng)
  • 深圳網(wǎng)站建設(shè)找哪家好中視頻自媒體平臺(tái)注冊(cè)
  • iis網(wǎng)站重定向設(shè)置百度寧波營(yíng)銷中心
  • 園林網(wǎng)站免費(fèi)模板學(xué)好seo
  • 北京企業(yè)網(wǎng)站開(kāi)發(fā)多少錢網(wǎng)絡(luò)營(yíng)銷環(huán)境宏觀微觀分析