1. 程式人生 > >Apache Kafka系列(一) 起步

Apache Kafka系列(一) 起步

摘要:

  1.Apache Kafka基本概念

  2.Kafka的安裝

  3.基本工具建立Topic

 本文基於centos7, Apache Kafka 0.11.0

一、基本概念

  Apache Kafka是一個釋出/訂閱的訊息系統,於2009年源自Linkedin,並與2011年開源。在架構方面,Kafka類似於其他的訊息系統(ActiveMQ,RabbitMQ)。但是Kafka有諸多的特性使得越來越流行:

  • Kafka本身支援分散式,很容易橫向擴充套件
  • 高吞吐量,高效能
  • 高容錯性,即使宕機

  Kafka在實時資料處理方面的應用場景越來越多

二、安裝

  1.安裝jdk

[[email protected]
/]# yum install java-1.8.0-openjdk.x86_64

     2.下載kafka_2.12-0.11.0.0.tgz到/tmp下

[[email protected] /]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0.tgz  -P /tmp

       3.解壓壓縮檔案到/opt目錄下

[[email protected] /]# tar -xvzf /tmp/kafka_2.12-0.11.0.0.tgz -C /opt/

       4.解壓後的目錄結構如下

[
[email protected]
kafka_2.12-0.11.0.0]# pwd /opt/kafka_2.12-0.11.0.0 [[email protected] kafka_2.12-0.11.0.0]# ls LICENSE NOTICE bin config libs site-docs [[email protected] kafka_2.12-0.11.0.0]#
  • bin:包含Kafka執行的所有指令碼,如:start/stop Zookeeper,start/stop Kafka
  • libs:Kafka執行的依賴庫
  • config:zookeeper,Logger,Kafka等相關配置檔案
  • sit-docs:Kafka相關文件

三、啟動Kafka伺服器

  Kafka能夠以3種方式部署叢集

  • 單節點-單Broker叢集:只在一個節點上部署一個Broker
  • 單節點-多Broker叢集:在一個節點上部署多個Broker,只不過各個Broker以不同的埠啟動
  • 多節點-多Broker叢集:以上兩種的組合,每個節點上部署一到多個Broker,且各個節點連線起來

  本次僅以第一種方式部署。啟動Kafka需要兩步:

  • 啟動ZooKeeper

    Kafka使用ZooKeeper來儲存叢集元資料和Consumer資訊。因此,有兩種選項:

    第一,獨立部署ZooKeeper應用並配置Kafka叢集到該ZooKeeper;

    第二,使用Kafka自帶的ZooKeeper

    本文選擇使用Kafka自帶的ZooKeeper

  •  啟動Kafka服務

    3.1 啟動ZooKeeper

[[email protected] kafka_2.12-0.11.0.0]# bin/zookeeper-server-start.sh config/zookeeper.properties 
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[2017-08-10 14:02:29,426] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
...
[2017-08-10 14:02:29,491] INFO minSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer) [2017-08-10 14:02:29,491] INFO maxSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer) [2017-08-10 14:02:29,501] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)

    ZooKeeper成功啟動,並繫結到埠2181。該埠是ZooKeeper的預設埠,可以通過編輯檔案config/zookeeper.properties 中的clientPort來修改監聽埠。

  3.2 啟動Kafka Broker

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-server-start.sh config/server.properties 
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[2017-08-10 14:11:58,741] INFO KafkaConfig values: 
 .....
[2017-08-10 14:12:00,385] INFO Kafka version : 0.11.0.0 (org.apache.kafka.common.utils.AppInfoParser)
[2017-08-10 14:12:00,385] INFO Kafka commitId : cb8625948210849f (org.apache.kafka.common.utils.AppInfoParser)
[2017-08-10 14:12:00,386] INFO [Kafka Server 0], started (kafka.server.KafkaServer)

四、使用Kafka

  4.1 建立一個Topic 名稱為HelloWorld

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 \
> --partitions 1 --topic HelloWorld

     校驗Topic是否建立成功

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
HelloWorld

     4.2 啟動一個Producer併發送訊息

   可以使用Kafka命令列客戶端(獲取標準命令列輸入並一Message形式發出)傳送訊息到Kafka叢集。預設情況下,每行會單獨算作一次訊息發出。下例通過該命令列終端傳送訊息到HelloWorld這個Topic,命令如下:

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic HelloWorld
>hello world!
>this is the first greating
>

     4.3 啟動一個Consumer並接受訊息

      跟4.2中類似,同樣可以使用Kafka命令列終端來啟動一個Consumer(格式化訊息到標準輸出),命令如下

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topicelloWorld --from-beginning
hello world!
this is the first greating

五、結論

  本文展示瞭如何一步一步安裝Kafka到Linux,涵蓋如何下載,啟動ZooKeeper/Kafka,傳送和接受來自Kafka伺服器的訊息

相關推薦

Apache Kafka系列() 起步

摘要:   1.Apache Kafka基本概念   2.Kafka的安裝   3.基本工具建立Topic  本文基於centos7, Apache Kafka 0.11.0 一、基本概念   Apache Kafka是一個釋出/訂閱的訊息系統,於2009年源自Linkedin,並與2011年開源。在架構方

Kafka系列之架構介紹和安裝

環境 指南 ont fcm port 架構 star cfg 自己的 Kafka架構介紹和安裝 寫在前面 還是那句話,當你學習一個新的東西之前,你總得知道這個東西是什麽?這個東西可以用來做什麽?然後你才會去學習它,使用它。簡單來說,kafka既是一個消息隊列,如今,它也演變

kafka系列kafka安裝及部署

一、環境準備 作業系統:Cent OS 7 Kafka版本:kafka_2.10 Kafka官網下載:請點選 JDK版本:1.8.0_171 zookeeper-3.4.10 二、kafka安裝配置 1、下載Kafka並解壓   下載:

springboot 整合kafka系列 、springboot整合kafka生產者

1、新建springboot腳手架工程,pom檔案如下,其中引入了kafka需要的依賴,注意這裡的kafka版本號需要和之前安裝的kafka版本一致,要不然會有問題 <?xml version="1.0" encoding="UTF-8"?> <proje

apache kafka系列之效能測試報告(虛擬機器版)

測試方法 在其他虛擬機器上使用 Kafka 自帶 kafka-producer-perf-test.sh 指令碼進行測試 Kafka 寫入效能 嘗試使用 kafka-simple-consumer-p

Apache Kafka系列(二) 命令列工具(CLI)

Apache Kafka命令列工具(Command Line Interface,CLI),下文簡稱CLI。 1. 啟動Kafka   啟動Kafka需要兩步:   1.1. 啟動ZooKeeper  [[email protected] kafka_2.12-0.11.0.0]# bin/zo

Apache Kafka系列(三) Java API使用

摘要:   Apache Kafka Java Client API 一、基本概念   Kafka集成了Producer/Consumer連線Broker的客戶端工具,但是在訊息處理方面,這兩者主要用於服務端(Broker)的簡單操作,如:     1.建立Topic     2.羅列出已存在的Topic

Apache Kafka系列(五) Kafka Connect及FileConnector示例

一. Kafka Connect簡介   Kafka是一個使用越來越廣的訊息系統,尤其是在大資料開發中(實時資料處理和分析)。為何整合其他系統和解耦應用,經常使用Producer來發送訊息到Broker,並使用Consumer來消費Broker中的訊息。Kafka Connect是到0.9版本才提供的並極大

Apache Kafka系列(四) 多執行緒Consumer方案

本文的圖片是通過PPT截圖出的,讀者如果修改意見請聯絡我 一、Consumer為何需要實現多執行緒   假設我們正在開發一個訊息通知模組,該模組允許使用者訂閱其他使用者傳送的通知/訊息。該訊息通知模組採用Apache Kafka,那麼整個架構應該是訊息的釋出者通過Producer呼叫API寫入訊息到Kafk

apache kafka系列kafka.common.ConsumerRebalanceFailedException異常解決辦法

kafka.common.ConsumerRebalanceFailedException :log-push-record-consumer-group_mobile-pushremind02.lf

apache kafka系列之原始碼分析走讀-kafka內部模組分析

apache kafka中國社群QQ群:162272557 kafka整體結構分析: kafka原始碼工程目錄結構如下圖: 下面只對core目錄結構作說明,其他都是測試類或java客戶端程式碼 admin   --管理員模組,操作和管理topic,parit

在.NET中使用Apache Kafka

​曾經在你的應用程式中使用過非同步處理嗎?在處理不需要立即執行的任務時,非同步程式碼似乎是不可避免的。Apache Kafka是最常用和最健壯的開源事件流平臺之一。許多公司和開發者利用它的強大功能來建立高效能的非同步操作,用於微服務的資料整合,以及用於應用程式健康指標的監控工具。這篇文章解釋了在.NET應用程

apache kafka監控系列-KafkaOffsetMonitor

lan Kafka集群 解釋 water zabbix xxx order avi download apache kafka中國社區QQ群:162272557 概覽 近期kafka server消息服務上線了,基於jmx指標參數也寫到zabbix中了。

apache ignite系列): 簡介

help ica tst 簡單使用 orm 監控 地址 客戶端訪問 tor apache-ignite簡介(一) 1,簡介 ? ignite是分布式內存網格的一種實現,其基於java平臺,具有可持久化,分布式事務,分布式計算等特點,此外還支持豐富的鍵值存儲以及SQL語法(基

Apache kafka是如何實現訊息的精確次(Exactly-once-semantics)語義的?

       原文連結:https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/

Apache Thrift系列詳解()

前言 Thrift是一個輕量級、跨語言的遠端服務呼叫框架,最初由Facebook開發,後面進入Apache開源專案。它通過自身的IDL中間語言, 並藉助程式碼生成引擎生成各種主流語言的RPC服務端/客戶端模板程式碼。 Thrift支援多種不同的程式語言,包括C

Apache Kafka入門教程輕鬆學-第四章 Kafka核心元件和流程-設計-原理()控制器

本入門教程,涵蓋Kafka核心內容,通過例項和大量圖表,幫助學習者理解,任何問題歡迎留言。 目錄: 通過前幾章的學習,我們已經從巨集觀層面瞭解了kafka的設計理念。包括kafka叢集的組成、訊息的主題、主題的分割槽、分割槽的副本等內容。接下來我們會繼續深入,瞭解kafk

Spring系列學習之Spring Apache Kafka

英文原文:https://spring.io/projects/spring-kafka 目錄 概述 特性 Kafka客戶端相容性 Spring Boot配置 快速開始 學習 文件 示例 概述 Spring for Apache Kafka(sprin

Flex+BlazeDS+IntelliJ IDEA整合開發系列起步demo

環境:blazeds-bin-4.0.1.21287,apache-tomcat-7.0.57,IntelliJ IDEA 15.0.4,Flex Builder 4.6 1. 解壓blazeds-bin-4.0.1.21287.zip,然後把blazeds.war解壓後的

大資料生態系統基礎:Apache Kafka基礎():介紹和安裝

http://blog.csdn.net/zhy_yz/article/details/5905637 一、 Apache kafka基礎介紹           1、kafka 是什麼?              首先一句話: Apache Kaf