1. 程式人生 > >Kafka簡介及使用PHP處理Kafka訊息

Kafka簡介及使用PHP處理Kafka訊息

Kafka 是一種高吞吐的分散式訊息系統,能夠替代傳統的訊息佇列用於解耦合資料處理,快取未處理訊息等,同時具有更高的吞吐率,支援分割槽、多副本、冗餘,因此被廣泛用於大規模訊息資料處理應用。

Kafka的特點:

  • 以時間複雜度為O(1)的方式提供訊息持久化能力,即使對TB級以上資料也能保證常數時間複雜度的訪問效能。
  • 高吞吐率。即使在非常廉價的商用機器上也能做到單機支援每秒100K條以上訊息的傳輸。【據瞭解,Kafka每秒可以生產約25萬訊息(50 MB),每秒處理55萬訊息(110 MB)】
  • 支援Kafka Server間的訊息分割槽,同時保證每個Partition內的訊息順序傳輸。
  • 分散式系統,易於向外擴充套件。所有的producer、broker和consumer都會有多個,均為分散式的。無需停機即可擴充套件機器。
  • 訊息被處理的狀態是在consumer端維護,而不是由server端維護。當失敗時能自動平衡。
  • 同時支援離線資料處理和實時資料處理。

Kafka的架構:

kafkakafka架構圖

Kafka的整體架構非常簡單,producer、broker(kafka)和consumer都可以有多個。Producer,consumer實現Kafka註冊的介面,資料從producer傳送到broker,broker承擔一箇中間快取和分發的作用。broker分發註冊到系統中的consumer。broker的作用類似於快取,即活躍的資料和離線處理系統之間的快取。客戶端和伺服器端的通訊,是基於簡單,高效能,且與程式語言無關的TCP協議。

Kafka基本概念:

  • Topic:特指Kafka處理的訊息源(feeds of messages)的不同分類。
  • Partition:Topic物理上的分組,一個topic可以分為多個partition,每個partition是一個有序的佇列。partition中的每條訊息都會被分配一個有序的id(offset)。
  • Message:訊息,是通訊的基本單位,每個producer可以向一個topic(主題)釋出一些訊息。
  • Producers:訊息和資料生產者,向Kafka的一個topic釋出訊息的過程叫做producers。
  • Consumers:訊息和資料消費者,訂閱topics並處理其釋出的訊息的過程叫做consumers。
  • Broker:快取代理,Kafa叢集中的一臺或多臺伺服器統稱為broker。

Kafka訊息傳送的流程:

Kafka-MessageKafka訊息傳送

下面是PHP生產、消費Kafka訊息的例子(假設已經配置好Kafka):

1.從zookeeper原始碼src/c/src安裝zookeeper c client

123cdzookeeper-3.4.8/src/c./configuremake&&makeinstall

2.編譯php libzookper擴充套件

1 2 3 4 5 git clonehttps://github.com/Timandes/libzookeeper.git cdlibzookeeper phpize ./configure--with-libzookeeper=/usr/local/bin/cli_mt make&&makeinstall

3.編譯php zookeeper擴充套件

12345git clonehttps://github.com/andreiz/php-zookeeper.gitcdphp-zookeeperphpize./configuremake&&makeinstall

4.修改php.ini配置,新增libzookeeper和php-zookeeper擴充套件

1 2 extension=libzookeeper.so extension=zookeeper.so

PHP處理Kafka訊息

1.啟動zookeeper和kafka

12kafka_2.11-0.10.0.0/bin/zookeeper-server-start.sh--daemon kafka_2.11-0.10.0.0/config/zookeeper.propertieskafka_2.11-0.10.0.0/bin/kafka-server-start.shkafka_2.11-0.10.0.0/config/server.properties

2.建立由2個partition組成的、名為testtopic的topic

1 kafka_2.11-0.10.0.0/bin/kafka-topics.sh--create--zookeeper localhost

相關推薦

Kafka簡介使用PHP處理Kafka訊息

Kafka 是一種高吞吐的分散式訊息系統,能夠替代傳統的訊息佇列用於解耦合資料處理,快取未處理訊息等,同時具有更高的吞吐率,支援分割槽、多副本、冗餘,因此被廣泛用於大規模訊息資料處理應用。 Kafka的特點: 以時間複雜度為O(1)的方式提供訊

使用PHP處理Kafka訊息

Kafka 是一種高吞吐的分散式訊息系統,能夠替代傳統的訊息佇列用於解耦合資料處理,快取未處理訊息等,同時具有更高的吞吐率,支援分割槽、多副本、冗餘,因此被廣泛用於大規模訊息資料處理應用。 Kafka的特點: 以時間複雜度為O(1)的方式提供訊息持久化能力,即使對TB級以

Kafka簡介使用

一、Kafka概述 離線部分: Hadoop->離線計算(hdfs / mapreduce) yarn zookeeper->分散式協調(動物管理員) hive->資料倉庫(離線計算 / sql)easy coding flume->資料

Apache-dbutils 簡介事務處理

/**   * @ClassName: JdbcUtils2   * @Description: 資料庫連線工具類   * @author:   * @date:   *   */   public class JdbcUtils2 {              private static Combo

kafka處理超大訊息的一些考慮

    時間:2015-02-01 00:38:26      閱讀:5854      評論:0      收藏:0&n

[Kafka] Apache Kafka 簡介、叢集搭建配置詳解

前言 kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一個關鍵因素。這些資料通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 Kafk

kafka安裝Kafka-PHP擴充套件的使用

實話說,如果用於佇列的話,跟PHP比較配的,還是Redis。用的順手,呵呵,只是Redis不能有多個consumer。但Kafka官方對PHP不支援,PHP擴充套件是愛好者或使用者寫的。下面就開始講Kafka的安裝吧。我以CentOS6.4為例,64位。 一. 首先確

高併發面試必問:分散式訊息系統Kafka簡介

Kafka是分散式釋出-訂閱訊息系統。它最初由LinkedIn公司開發,之後成為Apache專案的一部分。Kafka是一個分散式的,可劃分的,冗餘備份的永續性的日誌服務。它主要用於處理活躍的流式資料。 在大資料系統中,常常會碰到一個問題,整個大資料是由各個子系統組成,資料需

分散式訊息系統Kafka簡介

Kafka是分散式釋出-訂閱訊息系統。它最初由LinkedIn公司開發,之後成為Apache專案的一部分。Kafka是一個分散式的,可劃分的,冗餘備份的永續性的日誌服務。它主要用於處理活躍的流式資料。在大資料系統中,常常會碰到一個問題,整個大資料是由各個子系統組成,資料需要在各

[翻譯]Kafka Streams簡介: 讓流處理變得更簡單

看到一篇不錯的譯文,再推送一撥 Introducing Kafka Streams: Stream Processing Made Simple 這是Jay Kreps在三月寫的一篇文章,用來介紹Kafka Streams。當時Kafka Streams

分散式訊息處理Kafka入門

1、Apache Kafka 介紹 Kafka是一種快速、可擴充套件的、設計內在就是分散式的,分割槽的和可複製的提交日誌服務。從下是幾個常用術語。 Topics(主題),訊息流的存在形式。 Producers(生產者) Consumers(消費者) Broker(代理),

Kafka consumer處理訊息資料問題

案例分析 處理kafka consumer的程式的時候,發現如下錯誤: ERROR [2017-01-12 07:16:02,466] com.flow.kafka.consumer.main.KafkaConsumer: Unexpected Error Occurred ! kafka.common.Me

大資料系列之分散式釋出訂閱訊息系統Kafka(一)Kafka簡介,組成,叢集安裝

1.Kafka簡介   Kafka如同JMS(Java Message Service)一樣,是一箇中間件,在異構系統間通訊,為不同的系統之間提供服務。我們知道JMS通過佇列(一對一)與主題(一對多)兩種形式提供服務,而Kafka則通過主題(topic),來給一組消費者提供

推薦 kafka 簡介、使用場景、設計原理、主要配置叢集搭建

    需要考慮的影響效能點很多,除磁碟IO之外,我們還需要考慮網路IO,這直接關係到kafka的吞吐量問題.kafka並沒有提供太多高超的技巧;對於producer端,可以將訊息buffer起來,當訊息的條數達到一定閥值時,批量傳送給broker;對於consumer端也是一樣,批量fetch多條訊息.不

Kafka面試題全套整理:訊息處理+高可用叢集+生產者與消費者例項

有很多人問過我要過Kafka相關的面試題,我一直懶得整理,這幾天花了點時間,結合之前面試被問過的、別人諮詢過的、我會問別人的進

Kafka安裝部署

cto ane 交互 隊列 apache cleanup .html netstat 介紹 閱讀目錄 一、環境配置 二、操作過程 Kafka介紹 安裝及部署 回到頂部 一、環境配置 操作系統:Cent OS 7 Kafka版本:0.9.0.0 Kafk

ZOOKEEPER和KAFKA簡介

中心 概念 ras ice 規模 PE 傳遞 group 客戶端訪問 目錄KAFKA1. kafka的特性2. Kafka的架構組件簡介3. 重要組件或概念詳解Topic、Partition、OffsetProducersConsumers4. Ka

kafka簡介

搜索 容錯 sum rod stat 廣播 不同 輸入 connector kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中所有動作流數據。這種動作(網頁瀏覽、搜索和其他用戶的行動)是現代網絡上的許多社會功能的一個關鍵因素。這些數據通常是由於吞

Centos下PHP安裝Kafka擴充套件操作教程

說明:網上有好幾種PHP操作kafka的擴充套件,有kafka-php和php-rdkafka兩種是比較流行的。但其中kafka-php功能較全,但是使用composer安裝,對於內網使用者不能訪問外網,因此,我們選擇php-rdkafka。 php-rdkafka依賴librdkafka,先下

大資料學習之路93-kafka簡介

kafka是實時計算中用來做資料收集的,它是一個訊息佇列。它使用scala開發的。 那麼我們就會想我們這裡能不能用hdfs做資料儲存呢?它是分散式的,高可用的。 但是它還缺少一些重要的功能:比如說我們往hdfs中寫資料,之後我們需要實時的讀取。當我們讀到某一行的時候斷掉了,假如說這個讀取