| 企服解答
Kafka 是由 Linkedin 公司開發(fā)的,它是一個(gè)分布式的,支持多分區(qū)、多副本,基于Zookeeper 的分布式消息流平臺(tái),它同時(shí)也是一款開源的基于發(fā)布訂閱模式的消息引擎系統(tǒng)。Kafka的主要功能包括生產(chǎn)者發(fā)送消息給kafka服務(wù)器、消費(fèi)者從kafka服務(wù)器讀取消息、Kafka服務(wù)器依托zookeeper集群進(jìn)行服務(wù)的協(xié)調(diào)管理。
kafka是干嘛的
1、生產(chǎn)者發(fā)送消息給kafka服務(wù)器
發(fā)送消息主要有3種方式:發(fā)送并忘記(fire-and-forget)、同步發(fā)送、異步發(fā)送。
2、消費(fèi)者從kafka服務(wù)器讀取消息
需要從Kafka讀取數(shù)據(jù)的應(yīng)用程序使用KafkaConsumer訂閱Kafka主題,并從這些主題接收消息。從Kafka讀取數(shù)據(jù)與從其他消息系統(tǒng)讀取數(shù)據(jù)有一點(diǎn)不同,其中包含了一些獨(dú)特的概念和思想。如果不先理解這些概念,就很難理解如何使用消費(fèi)者API。將首先解釋一些重要的概念,然后通過(guò)一些示例展示使用消費(fèi)者api實(shí)現(xiàn)需求不同的應(yīng)用程序的不同方式。
3、Kafka服務(wù)器依托zookeeper集群進(jìn)行服務(wù)的協(xié)調(diào)管理
kafka是通過(guò)zookeeper來(lái)管理集群。kafka軟件包內(nèi)雖然包括了一個(gè)簡(jiǎn)版的zookeeper,但是感覺功能有限。在生產(chǎn)環(huán)境下,建議還是直接下載官方zookeeper軟件。
| 拓展閱讀
kafka的適用場(chǎng)景包括Messaging、Website activity tracking、Metrics、Log Aggregation。
1、Messaging
對(duì)于一些常規(guī)的消息系統(tǒng),kafka是個(gè)不錯(cuò)的選擇;partitons/replication和容錯(cuò),可以使kafka具有良好的擴(kuò)展性和性能優(yōu)勢(shì).不過(guò)到目前為止,我們應(yīng)該很清楚認(rèn)識(shí)到,kafka并沒有提供JMS中的"事務(wù)性""消息傳輸擔(dān)保(消息確認(rèn)機(jī)制)""消息分組"等企業(yè)級(jí)特性;kafka只能使用作為"常規(guī)"的消息系統(tǒng),在一定程度上,尚未確保消息的發(fā)送與接收絕對(duì)可靠(比如,消息重發(fā),消息發(fā)送丟失等)
2、Website activity tracking
kafka可以作為"網(wǎng)站活性跟蹤"的最佳工具;可以將網(wǎng)頁(yè)/用戶操作等信息發(fā)送到kafka中.并實(shí)時(shí)監(jiān)控,或者離線統(tǒng)計(jì)分析等
3、Metrics
Kafka通常被用于可操作的監(jiān)控?cái)?shù)據(jù)。這包括從分布式應(yīng)用程序來(lái)的聚合統(tǒng)計(jì)用來(lái)生產(chǎn)集中的運(yùn)營(yíng)數(shù)據(jù)提要。
4、Log Aggregation
kafka的特性決定它非常適合作為"日志收集中心";application可以將操作日志"批量""異步"的發(fā)送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/壓縮消息等,這對(duì)producer端而言,幾乎感覺不到性能的開支.此時(shí)consumer端可以使hadoop等其他系統(tǒng)化的存儲(chǔ)和分析系統(tǒng)。
[免責(zé)聲明]
文章標(biāo)題: kafka是干嘛的
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)溝通。發(fā)送郵件至36dianping@36kr.com,我們會(huì)在3個(gè)工作日內(nèi)處理。