You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by edenhill <gi...@git.apache.org> on 2016/10/20 20:55:20 UTC

[GitHub] kafka pull request #2048: Pluggable verifiable clients

GitHub user edenhill opened a pull request:

    https://github.com/apache/kafka/pull/2048

    Pluggable verifiable clients

    This adds support for pluggable VerifiableConsumer and VerifiableProducers test client implementations
    allowing third-party clients to be used in-place of the Java client in kafkatests.
    
    A new VerifiableClientMixin class is added and the standard Java Verifiable{Producer,Consumer}
    classes have been changed to use it.
    
    While third-party client drivers may be implemented with a complete class based on the Mixin, a simpler
    alternative which requries no kafkatest class implementation is available through the VerifiableClientApp class that uses ducktape's global param to specify the client app to use (passed to ducktape through the `--globals <json>` command line argument).
    
    Some existing kafkatest clients for reference:
    Go: https://github.com/confluentinc/confluent-kafka-go/tree/master/kafkatest
    Python: https://github.com/confluentinc/confluent-kafka-python/tree/master/confluent_kafka/kafkatest
    C++: https://github.com/edenhill/librdkafka/blob/0.9.2.x/examples/kafkatest_verifiable_client.cpp
    
    This PR also contains documentation for the simplex JSON-based verifiable* client protocol.
    
    There are also some minor improvements that makes troubleshooting failing client tests easier.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/edenhill/kafka pluggable_verifiable_clients

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/2048.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2048
    
----
commit 353c4e91f18e5af83daf781fc25a5df001766046
Author: Magnus Edenhill <ma...@edenhill.se>
Date:   2016-09-13T20:30:09Z

    Added pluggable Verifiable client support

commit bbb31d6fae7b01d40e71620eb403c58fb6152f46
Author: Magnus Edenhill <ma...@edenhill.se>
Date:   2016-09-13T20:32:48Z

    Added ConsumerState.Started and alive_nodes()
    
    This extra state is needed to know which nodes succesfully started but have
    not yet rebalanced.

commit 107891d261293ae424235389772939e52336f66d
Author: Magnus Edenhill <ma...@edenhill.se>
Date:   2016-09-13T20:33:11Z

    Add test for pluggable verifiable clients

commit 955635b61161a81dc5b24818fa3b8ce3a7ea1144
Author: Magnus Edenhill <ma...@edenhill.se>
Date:   2016-09-13T20:39:57Z

    verifiable_consumer: improved debug logging

commit aeb7e6522cabadea60287f0aa9900080741ce555
Author: Magnus Edenhill <ma...@edenhill.se>
Date:   2016-09-19T05:53:56Z

    Improved kafkatest error messages

commit 9d466c053d077f7f7e70c046ce0fc3dfdc4459ec
Author: Magnus Edenhill <ma...@edenhill.se>
Date:   2016-10-03T06:52:40Z

    OffsetValidationTest.test_consumer_failure: increased robustness
    
    Allow two session timeout cycles: one for timing out the killed client
    and one for the rebalance operation.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] kafka pull request #2048: Pluggable verifiable clients

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/kafka/pull/2048


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---