大數據之Kafka入門簡介

  • 目錄
    • 前言:
    • 1、Kafka是什么
    • 2、JMS是什么
    • 3、Kafka核心組件(重點)
    • 總結:

目錄

前言:

作為流式計算中的一個組件,對于它的組成以及運行的原理,學習者也需要相關的了解。以下主要簡單介紹了kafka是什么以及對應的組件有哪些;除此之外重點介紹了JMS,畢竟JMS也算是Kafka的核心,還是有必要了解一下。

1、Kafka是什么

在流式計算中,Kafka一般用來緩存數據,Storm通過消費Kafka的數據進行計算。

  • Apache Kafka是一個開源消息系統,由Scala寫成。是由Apache軟件基金會開發的一個開源消息系統項目。
  • Kafka最初是由LinkedIn開發,并于2011年初開源。2012年10月從Apache
    Incubator畢業。該項目的目標是為處理實時數據提供一個統一、高通量、低等待的平臺。
  • Kafka是一個分布式消息隊列生產者、消費者的功能。它提供了類似于JMS的特性,但是在設計實現上完全不同,此外它并不是JMS規范的實現。
  • Kafka對消息保存時根據Topic進行歸類,發送消息者稱為Producer,消息接受者稱為Consumer,此外kafka集群有多個kafka實例組成,每個實例(server)成為broker。
  • 無論是kafka集群,還是producer和consumer都依賴于zookeeper集群保存一些meta信息,來保證系統可用性。

2、JMS是什么

2.1、JMS的基礎
JMS是什么:JMS是Java提供的一套技術規范
JMS干什么用:用來異構系統 集成通信,緩解系統瓶頸,提高系統的伸縮性增強系統用戶體驗,使得系統模塊化和組件化變得可行并更加靈活
總結:為什么需要消息隊列(重要)
消息系統的核心作用就是三點:解耦,異步和并行
通過什么方式:生產消費者模式(生產者、服務器、消費者)
這里寫圖片描述

2.2、JMS消息傳輸模型

  • 點對點模式(一對一,消費者主動拉取數據,消息收到后消息清除)
    點對點模型通常是一個基于拉取或者輪詢的消息傳送模型,這種模型從隊列中請求信息,而不是將消息推送到客戶端。這個模型的特點是發送到隊列的消息被一個且只有一個接收者接收處理,即使有多個消息監聽者也是如此。
  • 發布/訂閱模式(一對多,數據生產后,推送給所有訂閱者)
    發布訂閱模型則是一個基于推送的消息傳送模型。發布訂閱模型可以有多種不同的訂閱者,臨時訂閱者只在主動監聽主題時才接收消息,而持久訂閱者則監聽主題的所有消息,即時當前訂閱者不可用,處于離線狀態。
    這里寫圖片描述

2.3、JMS核心組件
Destination:消息發送的目的地,也就是前面說的Queue和Topic。
Message :從字面上就可以看出是被發送的消息。
Producer: 消息的生產者,要發送一個消息,必須通過這個生產者來發送。
MessageConsumer: 與生產者相對應,這是消息的消費者或接收者,通過它來接收一個消息。
Message:
StreamMessage:Java 數據流消息,用標準流操作來順序的填充和讀取。
MapMessage:一個Map類型的消息;名稱為 string 類型,而值為 Java 的基本類型。
TextMessage:普通字符串消息,包含一個String。
ObjectMessage:對象消息,包含一個可序列化的Java 對象
BytesMessage:二進制數組消息,包含一個byte[]。
XMLMessage: 一個XML類型的消息。
最常用的是TextMessage和ObjectMessage。
這里寫圖片描述
通過與ConnectionFactory可以獲得一個connection
通過connection可以獲得一個session會話。

3、Kafka核心組件(重點)

  • Topic :消息根據Topic進行歸類
  • Producer:發送消息者
  • Consumer:消息接受者
  • broker:每個kafka實例(server)
  • Zookeeper:依賴集群保存meta信息。
    這里寫圖片描述

總結:

本篇文章只是對Kafka做了一個簡單的介紹。通過本篇文章,你只要能知道Kafka的核心組件有哪些以及Kafka是什么就OK;當然能了解JMS更好。下面的文章中會對Kafka做一個深入的介紹。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle的安裝與plsql的環境配置

1,首先得有oracle的安裝包和plsql的安裝包,安裝包地址可見百度云 http://pan.baidu.com/s/1miTqhmg 2.解壓下來進入0817賬套,找到set.exe文件,雙擊安裝即可 注意的是安裝的時候有兩個目錄是要自己創建的,否則安裝不成功…

如何在Docker容器中運行GUI程序

如何在Docker容器中運行GUI程序 各位,今天我們將學習如何在Docker之中運行GUI程序。我們可以輕易地在Docker容器中運行大多數GUI程序且不出錯。Docker是一個開源項目,提供了一個打包、分發和運行任意程序的輕量級容器的開放平臺。它沒有語言支持、框架或…

【python】Get與Post的區別?(面試官最想聽到的答案)

GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。 最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞參數。 你可能自己寫過無數個GET和POST請求,或者已經看過很多權威網站總結出…

大數據之Kafka集群安裝及簡單使用

目錄1、Kafka集群部署2、Kafka常用操作命令 目錄 1、Kafka集群部署 1.1、下載安裝包 http://kafka.apache.org/downloads.html 在linux中使用wget命令下載安裝包 wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz 1.2、解壓安裝包 tar -z…

Python爬蟲入門之Urllib庫的基本使用

那么接下來,小伙伴們就一起和我真正邁向我們的爬蟲之路吧。 1.分分鐘扒一個網頁下來 怎樣扒網頁呢?其實就是根據URL來獲取它的網頁信息,雖然我們在瀏覽器中看到的是一幅幅優美的畫面,但是其實是由瀏覽器解釋才呈現出來的&#xf…

【python】hashlib.shasha256練習注冊 --筆記

用戶注冊和登錄import csv import hashlib#注冊將用戶信息填寫到csv文件中 def register():username input(用戶名:)password input(密碼:)user []user.append(username)user.append(hashlib.sha256(password.encode(utf-8)).hexdigest())with open(t2/users.csv, a, newlin…

《3ds Max瘋狂設計學院》——1.6節3ds Max 2016新增的主要功能

本節書摘來自異步社區《3ds Max瘋狂設計學院》一書中的第1章,第1.6節3ds Max 2016新增的主要功能,作者 曹茂鵬,更多章節內容可以訪問云棲社區“異步社區”公眾號查看 1.6 3ds Max 2016新增的主要功能1.Max Creation Graph3ds Max…

大數據之Kafka內部原理詳細介紹

目錄前言:1、Kafka整體結構2、Consumer與topic關系3、Kafka消息的分發4、Consumer的負載均衡5、kafka文件存儲機制總結: 目錄 前言: 本篇文章所介紹的內容還是以了解為主,主要目的還是為了對Kafka有一個更深入的理解。主要介紹…

【python】urllib和urllib3,requests 簡要概括---筆記

urllib和urllib3,requestsurl:協議://存放資源的地址(域名)/具體的資源https://bj.lianjia.com/zufang/dghfjhsjdf648.htmlurllib.request 用來發出請求urllib.parseurllib.request.urlopen(str) --->response對象request urllib.reques…

JS與APP原生控件交互

“熱更新”、“熱部署”相信對于混合式開發的童鞋一定不陌生,那么APP怎么避免每次升級都要在APP應用商店發布呢?這里就用到了混合式開發的概念,對于電商網站尤其顯得重要,不可能每次發布一個活動,都要發布一個現版本&a…

《脫穎而出——成功網店經營之道》一2.6 連橫:返利模式的應用及分銷

本節書摘來異步社區《脫穎而出——成功網店經營之道》一書中的第2章,第2.6節,作者: 何小健 責編: 趙軒, 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.6 連橫:返利模式的應用及分銷 脫穎而出——成功網店…

【python】os模塊 遞歸刪除文件夾所有文件 --筆記

os.environ 獲取系統的環境變量 os.name nt -- windows \r\n | posix --- Linux \nos.path: import osprint(os.environ) print(os.environ[OS])print(os.path.abspath(t1/file01.py)) # 獲取絕對路徑 print(os.path.isabs(t1/file01.py)) # 判斷所給的路徑是否是一個絕對…

大數據之Spark集群安裝及簡單使用

目錄1、Spark集群安裝1.1. 安裝 2、啟動Spark Shell2.1、啟動spark shell2.2、在spark shell中編寫WordCount程序 目錄 1、Spark集群安裝 1.1. 安裝 1.1.1. 機器部署 準備兩臺以上Linux服務器,安裝好JDK1.7 1.1.2. 下載Spark安裝包 下載地址:ht…

《C和C++代碼精粹》——1.7 類型安全I/O

本節書摘來自異步社區出版社《C和C代碼精粹》一書中的第1章第1.7節,作者: 【美】Chuck Allison,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.7 類型安全I/O C和C代碼精粹當然每個C程序員都曾經使用過printf的錯誤格式描述符號。…

大數據之Spark簡介及RDD說明

目錄前言:1、Spark概述1.1、什么是Spark(官網:http://spark.apache.org)1.2、為什么要學Spark1.3、Spark特點 2、RDD概述2.1、什么是RDD2.2、RDD的屬性2.3、創建RDD的兩種方式2.4、RDD編程API2.5、RDD的依賴關系2.6、RDD的緩存2.7…

Python3中urlopen()詳解

一. 簡介 urllib.request.urlopen()函數用于實現對目標url的訪問。 函數原型如下:urllib.request.urlopen(url, dataNone, [timeout, ]*, cafileNone, capathNone, cadefaultFalse, contextNone)  url: 需要打開的網址 data:Post提交的數據 timeo…

python面向對象實現簡易銀行管理員頁面系統

銀行管理員頁面系統設計:card 類: cardId password moneyuser 類: username phone id cards[]銀行的工作人員: 賬號 密碼 登錄 展現管理系統所有功能Bank類:開戶取錢存錢轉賬銷戶查賬解鎖... import pickle import random# 銀行卡 import time#card 類…

單子模式

package test; class aceing { /** param args */ private static aceing ace; public aceing() { super(); System.out.println("aceing類中的無參構造器調用了"); } public static aceing getAceing() { if(ace null) { ace new aceing(); } return ace; }} pack…

《塑造互聯網思維的企業》一一第4章 全球商務向社會化媒體的轉變

第4章 全球商務向社會化媒體的轉變 塑造互聯網思維的企業社會化媒體在發達國家的廣泛采用已是我們所熟知的,它在社會和全球文化產生的大范圍變革中至關重要。為了完全了解其中的原因,有必要探究一下那些推動社會化商務的復雜且相互關聯的因素的共同影響…

大數據之SparkSQL簡介及DataFrame的使用

目錄前言:1、Spark SQL1.1、Spark SQL概述1.2、DataFrames1.3、DataFrame常用操作 總結: 目錄 前言: 本文主要介紹下SparkSQL以及SparkSQL的簡單使用。這里只是做了一個非常簡單的介紹,后續工作中如果有用到相關的知識&#xff…