基於RobotFramework——自定義kafka庫並匯入使用
【 Kafka 】
首先介紹一下我瞭解的kafka的皮毛資訊——
- kafka ——一個分佈流處理系統:流處理:可以像訊息佇列一樣publish或者subscribe資訊;分散式:提供了容錯性,併發處理訊息的機制
- 叢集 ——kafka執行在叢集上,叢集包含一個或多個伺服器。所謂伺服器叢集,就是將很多伺服器集中在一起進行同一種服務,在客戶端看起來像是隻有一個伺服器。叢集可以利用多個計算機進行平行計算從而有很高的計算速度,也可以使用多個計算機做備份,從而使得一個機器壞了,整個系統還能正常執行
- Broker ——一個叢集有多個broker(一臺伺服器就是一個broker),一個broker可以容納多個Topic
- Topic ——主題,由使用者定義並配置在kafka伺服器,用於建立生產者和消費者之間的訂閱關係。生產者傳送訊息到指定的topic下,消費者從這個topic下消費訊息。每一條訊息包含鍵值(key),值(value)和時間戳(timestamp)
- Producer ——訊息生產者,就是像kafka broker發訊息的客戶端
- Consumer ——訊息消費者,是訊息的使用方,負責消費kafka伺服器上的資訊
- Partition ——訊息分割槽,一個Topic可以分為多個Partition,每個Partition是一個有序的佇列,Partition中的每條訊息都會被分配一個有序的id(offset)
- offset ——訊息在Partition中的偏移量,每一條訊息在Partition都有唯一的偏移量。
- Consumer Group ——消費者分組,用於歸組同類消費者。每個consumer屬於一個特定的consumer group,多個消費者可以共同消費一個Topic下的訊息,每個消費者消費其中的部分訊息,這些消費者就組成了一個分組,擁有同一個分組名稱,通常也被稱為消費者叢集。
【 kafka-python 】
kafka-python是一個python的Kafka客戶端,可以用來向kafka的topic傳送訊息、消費訊息。
接下來介紹如何封裝自定義凡人kafka庫,然後再RobotFramework上使用——
- 建立資料夾
- 在D:\Python27\Lib\site-packages的資料夾裡面建立你的自定義庫資料夾,例如lmkafka
- 在資料夾裡面建立兩個檔案,分別是__init__.py和producer.py(該檔名自定義),程式碼如下
#producer.py #!/usr/bin/python # -*- coding: UTF-8 -*- #命令列輸入pip install kafka-python,進行下載 from kafka import KafkaProducer class Produce(object): def produce(self,ip,topic,filepath): producer = KafkaProducer(bootstrap_servers=[ip]) with open(filepath) as f: msg = f.read() print msg # 傳送 producer.send(topic, msg) #print filepath producer.close()
#__init__.py #!/usr/bin/python # -*- coding: UTF-8 -*- from producer import Produce class lmkafka(Produce): ROBOT_LIBRARY_SCOPE = 'GLOBAL'
- 建立成功後,嘗試重啟ride,匯入lmkafka庫,如果匯入不成功(庫名為紅色),則需要新增路徑——在D:\Python27\Lib\site-packages的資料夾裡面新增.pth檔案,例如lmkafka.pth
- 檔案內容:D:\Python27\Lib\site-packages\lmkafka
-
-
再次檢視,庫匯入成功
-
庫的使用——
可以向kafka裡面傳送資料啦~