开始使用了kafka-python, 发现对gevent协程支持不太好,就选择了pykafka, 异步也是使用协程greenlet。了解gevent的应该都知道,gevent是greenlet的升级。
安装非常简单,(我是py2.7)直接pip: pip install pykafka
下面直接上代码:生产者的代码
import Queue
import json
from datetime import datetime
import traceback
import random
import time
import gevent
from pykafka import KafkaClient
class ActivityPushKafka(object):
"""只做了生产者"""
# _instance = None
#
# def __new__(cls, *args, **kwargs):
#
# if cls._instance is None:
# cls._instance = object.__new__(cls, *args, **kwargs)
# return cls._instance
def __init__(self, hosts='ip:port', zookeeper_hosts=None):
"""
:param hosts: kafkafka服务地址和端口
:param zookeeper_hosts: ZK的集群配置地址和端口,不为None优先于hosts
"""
self.hosts = hosts
self.zookeeper_hosts = zookeeper_hosts
# use_greenlets=True 设置为True才能对gevent支持更友好,否则为造成连接失败
self.client = KafkaClient(ho