Key issue with gevent is there can be no C bindings.  If pure python then
the sockets can be monkey patched as long as pure python code.  I use
gevent to run redis-py to make async calls to redis even though the client
in nature is blocking.  I do believe your client is pure python?

Thanks


On Sun, Feb 17, 2013 at 1:15 PM, David Arthur <mum...@gmail.com> wrote:

> Replying to both messages inline:
>
>
> On 2/16/13 9:07 PM, David Montgomery wrote:
>
>> By the way..I assume that python-kafka is gevent safe?
>>
> No idea, I've never used greenlet/gevent before. If the question is "are
> you doing anything unusual in kafka-python", then the answer is no. Just
> basic method calls and some socket stuff
>
>
>> Thanks
>>
>>
>> On Sun, Feb 17, 2013 at 10:04 AM, David Montgomery <
>> davidmontgom...@gmail.com> wrote:
>>
>>  Ok...great...I see now about offsets.  I see how I can manage on
>>> restarts.  Thanks!
>>>
>>> So...considering I am in a disposable machine world then I will consider
>>> redis as a centralized store.  Makes sense?
>>>
>> You can certainly used Redis as a fast, in-memory queue. It is, of
> course, an entirely different system with different design goals and
> features. The applicability of Redis or Kafka depends on your use case.
>
>
>>> What is the time frame for v8 release?
>>>
>> I believe it is farily imminent, maybe sometime in March?
>
>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Sun, Feb 17, 2013 at 3:27 AM, David Arthur <mum...@gmail.com> wrote:
>>>
>>>  Greetings!
>>>>
>>>> I am the maintainer of kafka-python. Very cool to see it used in the
>>>> wild.
>>>>
>>>> The kafka-python library supports the low-level protocols of Kafka 0.7
>>>> (Produce/Fetch/MultiProduce/****MultiFetch). When you ask Kafka for
>>>>
>>>> messages via a Fetch request, you specify an offset + range (much like
>>>> reading a file). The `iter_messages` helper returns an iterator that
>>>> automatically handles paging offsets through successive Fetch requests.
>>>> However, it does not support _saving_ your offsets. One of the
>>>> parameters
>>>> to iter_messages is the offset to start at, so when you re-run your
>>>> script
>>>> it will start at that point again.
>>>>
>>>> In 0.7, clients must talk to ZooKeeper in order to persist offsets in a
>>>> Kafka-compatible way (or they could just save them locally depending on
>>>> the
>>>> use case). Talking to ZooKeeper from Python is somewhat troublesome, and
>>>> implementing the Kafka "consumer group rebalancing" is even more
>>>> troublesome - so I chose to omit it.
>>>>
>>>> In 0.8 (not yet released), consumer offsets are managed centrally by the
>>>> Kafka brokers and have APIs for clients to commit and fetch offsets. I
>>>> am
>>>> in the process of implementing a 0.8 compatible version of kafka-python.
>>>>
>>>> So for the time being, you are on your own with regards to offset
>>>> management :-/
>>>>
>>>> Cheers!
>>>>
>>>> -David
>>>>
>>>>
>>>> On 2/16/13 1:35 PM, Philip O'Toole wrote:
>>>>
>>>>  You need to read the Kafka design docs. Kafka does not delete messages
>>>>> just because a Consumer reads it. It does not track what messages have
>>>>> been
>>>>> consumed by any Consumer.
>>>>>
>>>>> It is up to Consumers to start off where they left off, by always
>>>>> asking
>>>>> for the right message (via offsets).
>>>>>
>>>>> Philip
>>>>>
>>>>> On Feb 16, 2013, at 4:48 AM, David Montgomery <
>>>>> davidmontgom...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>   Hi,
>>>>>
>>>>>> I have a zookeer and kafka set up.
>>>>>>
>>>>>> I am using this python client:  https://github.com/mumrah/**
>>>>>> kafka-python 
>>>>>> <https://github.com/mumrah/**kafka-python<https://github.com/mumrah/kafka-python>
>>>>>> >
>>>>>>
>>>>>>
>>>>>> I can send and receive messages but they are not deleted.
>>>>>>
>>>>>> How can I send a message to kafka and no other consumer can use it?
>>>>>>
>>>>>>
>>>>>> I feel I am missing something on how kafka works
>>>>>>
>>>>>> def produce():
>>>>>>      kafka = KafkaClient("xxx.xxx", 9092)
>>>>>>      kafka.send_messages_simple("****my-topic", "some message")
>>>>>>
>>>>>>      kafka.close()
>>>>>>      print 'done'
>>>>>>
>>>>>> def consume():
>>>>>>      kafka = KafkaClient("xxx.xxx", 9092)
>>>>>>      for msg in kafka.iter_messages("my-topic"****, 0, 0,
>>>>>>
>>>>>> 1024*1024,False):
>>>>>>          print(msg.payload)
>>>>>>      kafka.close()
>>>>>>      print 'done'
>>>>>>
>>>>>> Every time I ran the above...everytime I ran consume the messages just
>>>>>> grew
>>>>>> from previous messages.
>>>>>>
>>>>>> Am I missing something on the server.properties file?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>

Reply via email to