python串連KAFKA分布式訊息系統執行個體教程

來源:互聯網
上載者:User

最近項目中總是跟java配合,我一個寫python的程式員,面對有複雜資料結構的java代碼轉換成python代碼,確實是一大難題,有時候或多或少會留有一點坑,看來有空還得看看java基礎。這不今天又開始讓我們串連kafka啦。公司的kafka跟zookeeper做了群集,串連比較麻煩,具體如何使用,java那面做的封裝我也看不到,所以只能通過簡單的溝通。

開始

開始肯定去找python串連kafka的標準庫,kafka-python和pykafka 前者使用的人多是比較成熟的庫,後者是Samsa的升級版本,在網上到文章在python串連並使用kafka 使用samsa串連zookeeper然後使用kafka Cluster很能滿足我的需求,在pykafka的例子中也看到了zk的支援,而kafka-python並沒有zk的支援,所以選擇了pykafka做為串連庫

概念問題

kafaka和zookeeper的群集,使用samsa的時候生產者和消費者都串連了zookeeper,但是我跟峰雲(大資料大牛,營運?潘磕孀?┕低ǎ??鞘褂玫氖焙蚴巧??咧苯恿??afaka伺服器列表,消費者才用zookeeper。這也解決了我看pykafka文檔,只有消費者才串連zookeeper的困惑,所以問題解決,直接按照文檔搞起。

生產者


>>> from pykafka import KafkaClient
>>> client = KafkaClient(hosts="192.168.1.1:9092, 192.168.1.2:9092") # 可接受多個Client這是重點
>>> client.topics  # 查看所有topic
>>> topic = client.topics['my.test'] # 選擇一個topic
>>> producer = topic.get_producer()
>>> producer.produce(['test message ' + str(i ** 2) for i in range(4)]) # 加了個str官方的例子py2.7跑
不過

消費者


>>> balanced_consumer = topic.get_balanced_consumer(
    consumer_group='testgroup',
    auto_commit_enable=True,  # 設定為Flase的時候不需要添加 consumer_group
    zookeeper_connect='myZkClusterNode1.com:2181,myZkClusterNode2.com:2181/myZkChroot' # 這裡就是串連多個zk
)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.