You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Lorenzo Alberton (JIRA)" <ji...@apache.org> on 2012/09/15 17:33:07 UTC

[jira] [Commented] (KAFKA-419) Updated PHP client library to support kafka 0.7+

    [ https://issues.apache.org/jira/browse/KAFKA-419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13456431#comment-13456431 ] 

Lorenzo Alberton commented on KAFKA-419:
----------------------------------------

I updated the PHP client library again to support additional functionality and make it more robust. 
The new patch (phpclient.new.patch) completely replaces the old one (phpclient.patch).

List of improvements on the previous patch:

- completely refactored socket handling, to be more robust, with better error checking and handling of edge-cases.
- added support for 64bit offsets
- better checks for responses from Kafka (fixed connection hanging)
- added Zookeeper-based consumer, with support for multiple consumer groups, and for manual offset commit action (so it's possible to wait for an ACK from the message processor before advancing the offsets), and example code
- added support for OffsetRequest and getOffsetsBefore() in the SimpleConsumer class to query the state of the queue
- new, more specific exception classes (socket errors, empty queue, invalid topic, etc.)
- support for connection timeouts in microseconds
- vastly improved test suite

                
> Updated PHP client library to support kafka 0.7+
> ------------------------------------------------
>
>                 Key: KAFKA-419
>                 URL: https://issues.apache.org/jira/browse/KAFKA-419
>             Project: Kafka
>          Issue Type: Improvement
>          Components: clients
>    Affects Versions: 0.7, 0.8
>         Environment: N/A
>            Reporter: Lorenzo Alberton
>              Labels: php, phpunit
>         Attachments: phpclient.new.patch, phpclient.patch
>
>
> I updated the PHP client library to fully work with the kafka code in trunk, with the following improvements:
> - added support for GZIP compression (both in the producer and the consumer);
> - implemented stream-based iteration of messages (rather than loading the entire response in memory);
> - added base Kafka_Exception class (extending RuntimeException) and some child classes to catch specific errors;
> - added validation and error checking in several parts of the code (like CRC validation of messages, stream connection/EOF checks, response code verification);
> - added example producer for compressed messages.
> The code is fully tested (vast improvements to the existing test suite are provided with the patch), and already incorporates a proper fix for KAFKA-319  (which can be rejected).
> The API hasn't changed and is 100% backwards compatible.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira