Great.  I will follow your progress.  I will use kafka 7.x in the meantime
for development.  I am sure you will announce in then group with the 8.x
has a RC for your client?


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

> It is indeed pure python
>
>
> On 2/17/13 12:20 AM, David Montgomery wrote:
>
>> 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>
>>>>>>>> <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