莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          淘寶開源metaq的python客戶端

          Posted on 2012-03-21 19:08 dennis 閱讀(5568) 評論(1)  編輯  收藏 所屬分類: javamy open-sourceHadoop與分布式
              前面一篇博客介紹了我在github上的一個metaq分支,今天下午寫了個metaq的python客戶端,目前僅支持發送消息功能,不過麻雀雖小,五臟俱全,客戶端和zookeeper的交互和連接管理之類都還具備,不出意外,我們會首先用上。第一次正兒八經地寫python代碼,寫的不好的地方請盡管拍磚,多謝。
              項目叫meta-python,仍然放在github上:https://github.com/killme2008/meta-python

              使用需要先安裝zkpython這個庫,具體安裝這篇博客,使用很簡單,發送消息:
              from metamorphosis import Message,MessageProducer,SendResult
              p=MessageProducer("topic")
              message=Message("topic","message body")
              print p.send(message)
              p.close()

              
          MessageProducer就是消息發送者,它的構造函數接受至少一個topic,默認的zk_servers為localhost:2181,可以通過zk_servers參數指定你的zookeeper集群:

          p=MessageProducer("topic",zk_servers="192.168.1.100:2191,192.168.1.101:2181")

          更多參數請直接看源碼吧。一個本機的性能測試(meta和客戶端都跑在我的機器上,機器是Mac MC700,osx 10.7,磁盤沒有升級過):
          from metamorphosis import Message,MessageProducer
          from time import time
          p=MessageProducer("avos-fetch-tasks")
          message=Message("avos-fetch-tasks","http://www.taobao.com")
          start=time()
          for i in range(0,10000):
              sent=p.send(message)
              if not sent.success:
                  print "send failed"
          finish=time()
          secs=finish-start
          print "duration:%s seconds" % (secs)
          print "tps:%s msgs/second" % (10000/secs)
          p.close()

           結果:


          duration:1.85962295532 seconds
          tps:5377.43415749 msgs/second

          評論

          # re: 淘寶開源metaq的python客戶端[未登錄]  回復  更多評論   

          2012-11-28 17:11 by colin
          大俠,你們metaq的java客戶端性能測試如何,
          我試用了下,
          單線程的話,
          發送 tps: 50 msgs/second
          接收 tps: 28000 msgs/second

          發送接收差異這么大,感覺很奇怪,是不是還有一些特殊的設置?
          主站蜘蛛池模板: 黔南| 关岭| 昌邑市| 科尔| 丰镇市| 五原县| 汾西县| 乐陵市| 湟中县| 桃源县| 麻江县| 久治县| 安图县| 五莲县| 平昌县| 云南省| 扶风县| 宁南县| 古丈县| 盖州市| 开原市| 长海县| 河曲县| 高州市| 五大连池市| 乐清市| 松原市| 和硕县| 隆安县| 霍林郭勒市| 布尔津县| 沂源县| 曲阳县| 昭平县| 高台县| 浦县| 永顺县| 双江| 轮台县| 塘沽区| 阿城市|