summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2017-03-07 11:33:23 -0800
committerDana Powers <dana.powers@gmail.com>2017-03-07 12:24:55 -0800
commita4338169d4e87536ed2e81ce41d9276e2f3d73a9 (patch)
tree3f1fe0314af2985268d1ad4e26d4a4b3375057b8
parent1810816b00770c9aaf0e3175fe3d73d3ed19f81d (diff)
downloadkafka-python-a4338169d4e87536ed2e81ce41d9276e2f3d73a9.tar.gz
Add ClusterMetadata documentation
-rw-r--r--docs/apidoc/ClusterMetadata.rst5
-rw-r--r--docs/apidoc/kafka.rst10
-rw-r--r--docs/apidoc/modules.rst1
-rw-r--r--kafka/client_async.py4
-rw-r--r--kafka/cluster.py14
5 files changed, 34 insertions, 0 deletions
diff --git a/docs/apidoc/ClusterMetadata.rst b/docs/apidoc/ClusterMetadata.rst
new file mode 100644
index 0000000..4b575b3
--- /dev/null
+++ b/docs/apidoc/ClusterMetadata.rst
@@ -0,0 +1,5 @@
+ClusterMetadata
+===========
+
+.. autoclass:: kafka.cluster.ClusterMetadata
+ :members:
diff --git a/docs/apidoc/kafka.rst b/docs/apidoc/kafka.rst
index eb04c35..a29e063 100644
--- a/docs/apidoc/kafka.rst
+++ b/docs/apidoc/kafka.rst
@@ -6,6 +6,7 @@ Subpackages
.. toctree::
+ kafka.cluster
kafka.consumer
kafka.partitioner
kafka.producer
@@ -13,6 +14,15 @@ Subpackages
Submodules
----------
+kafka.cluster module
+--------------------
+
+.. automodule:: kafka.cluster
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+
kafka.client module
-------------------
diff --git a/docs/apidoc/modules.rst b/docs/apidoc/modules.rst
index c1c3335..9477887 100644
--- a/docs/apidoc/modules.rst
+++ b/docs/apidoc/modules.rst
@@ -7,3 +7,4 @@ kafka-python API
KafkaProducer
KafkaClient
BrokerConnection
+ ClusterMetadata
diff --git a/kafka/client_async.py b/kafka/client_async.py
index 9e30e09..5824e7a 100644
--- a/kafka/client_async.py
+++ b/kafka/client_async.py
@@ -48,6 +48,10 @@ class KafkaClient(object):
This class is not thread-safe!
+ Attributes:
+ cluster (:any:`ClusterMetadata`): Local cache of cluster metadata, retrived
+ via MetadataRequests during :meth:`.poll`.
+
Keyword Arguments:
bootstrap_servers: 'host[:port]' string (or list of 'host[:port]'
strings) that the consumer should contact to bootstrap initial
diff --git a/kafka/cluster.py b/kafka/cluster.py
index 0a5c07f..d646fdf 100644
--- a/kafka/cluster.py
+++ b/kafka/cluster.py
@@ -16,6 +16,20 @@ log = logging.getLogger(__name__)
class ClusterMetadata(object):
+ """
+ A class to manage kafka cluster metadata.
+
+ This class does not perform any IO. It simply updates internal state
+ given API responses (MetadataResponse, GroupCoordinatorResponse).
+
+ Keyword Arguments:
+ retry_backoff_ms (int): Milliseconds to backoff when retrying on
+ errors. Default: 100.
+ metadata_max_age_ms (int): The period of time in milliseconds after
+ which we force a refresh of metadata even if we haven't seen any
+ partition leadership changes to proactively discover any new
+ brokers or partitions. Default: 300000
+ """
DEFAULT_CONFIG = {
'retry_backoff_ms': 100,
'metadata_max_age_ms': 300000,