日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python3連接kafka模塊pykafka生產者簡單封裝

系統 1703 0

1.1安裝模塊

            
              pip install pykafka

            
          

1.2基本使用

            
              # -* coding:utf8 *-  
from pykafka import KafkaClient  
host = 'IP:9092, IP:9092, IP:9092'
client = KafkaClient(hosts = host)  
# 生產者  
topicdocu = client.topics['my-topic']  
producer = topicdocu.get_producer()  
for i in range(100):  
    print i  
    producer.produce('test message ' + str(i ** 2))  
producer.stop()

            
          

1.3簡單封裝

            
              class KafkaProduct():

    def __init__(self,hosts,topic):
        """
        初始化實例
        :param hosts: 連接地址
        :param topic:
        """
        self.__client = KafkaClient(hosts=hosts)
        self.__topic = self.__client.topics[topic.encode()]

    def __set_topic(self, topic):
        self.__topic = self.__client.topics[topic.encode()]

    def set_topic(self, topic):
        """
        設置topic
        :param topic:
        :return:
        """
        self.__set_topic(topic)

    def get_topics(self):
        """
        獲取當前所有topic
        :return:
        """
        return self.__client.topics

    def get_topic(self):
        """
        獲取當前topic
        :return:
        """
        return self.__topic

    def Producer(self):
        """
        生產者對象
        :return:
        """
        with self.__topic.get_producer(delivery_reports=True) as producer:
            next_data = ''
            while True:
                if next_data:
                    producer.produce(str(next_data).encode())
                next_data = yield True

    def send_data(self,datas):
        """
        發送數據
        :param datas:需要傳入的可迭代對象
        :return:
        """
        c = self.Producer()
        next(c)
        for i in datas:
            c.send(i)

if __name__ == '__main__':

hosts = "1.2.3.4:9999,2.3.4.5:9090" #連接hosts
topic = "test_523"
K = KafkaProduct(hosts=hosts, topic=topic)  #
#K.set_topic("test")  #切換設置新的topic
K.get_topic()  #獲取當前設置的topic
#K.get_topics() #獲取所有topic
data = range(10000)  #要發送的可迭代對象
K.send_data(data)

            
          

1.4引用來源

博客園:Python測試Kafka集群(pykafka)

知乎:使用生成器把Kafka寫入效率提高1000倍


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 濉溪县| 株洲县| 苍山县| 哈密市| 宜黄县| 新野县| 灌南县| 仪陇县| 三台县| 洞头县| 永清县| 阿拉善右旗| 忻城县| 高碑店市| 凤凰县| 常州市| 余庆县| 南城县| 中卫市| 金乡县| 珠海市| 永兴县| 紫云| 东乌珠穆沁旗| 海宁市| 泰顺县| 阳城县| 潞城市| 广宗县| 南通市| 左云县| 和顺县| 蒙自县| 蒙山县| 息烽县| 清丰县| 南召县| 安西县| 三台县| 巴里| 从化市|