blob: 2a27d8395ae65ba9bf693f046c1ad9cc6f170c73 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (9) on Wed Mar 28 12:12:59 BST 2018 -->
<title>ClusterResourceListener (kafka 1.1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="date" content="2018-03-28">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-1.10.2.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ClusterResourceListener (kafka 1.1.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/kafka/common/ClusterResource.html" title="class in org.apache.kafka.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kafka/common/Configurable.html" title="interface in org.apache.kafka.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kafka/common/ClusterResourceListener.html" target="_top">Frames</a></li>
<li><a href="ClusterResourceListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><span>SEARCH:&nbsp;</span>
<input type="text" id="search" value=" " disabled="disabled">
<input type="reset" id="reset" value=" " disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="../../../../org/apache/kafka/common/package-summary.html">org.apache.kafka.common</a></div>
<h2 title="Interface ClusterResourceListener" class="title">Interface ClusterResourceListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ClusterResourceListener</span></pre>
<div class="block">A callback interface that users can implement when they wish to get notified about changes in the Cluster metadata.
<p>
Users who need access to cluster metadata in interceptors, metric reporters, serializers and deserializers
can implement this interface. The order of method calls for each of these types is described below.
<p>
<h4>Clients</h4>
There will be one invocation of <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> after each metadata response.
Note that the cluster id may be null when the Kafka broker version is below 0.10.1.0. If you receive a null cluster id, you can expect it to always be null unless you have a cluster with multiple broker versions which can happen if the cluster is being upgraded while the client is running.
<p>
<a href="../../../../org/apache/kafka/clients/producer/ProducerInterceptor.html" title="interface in org.apache.kafka.clients.producer"><code>ProducerInterceptor</code></a> : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked after <a href="../../../../org/apache/kafka/clients/producer/ProducerInterceptor.html#onSend-org.apache.kafka.clients.producer.ProducerRecord-"><code>ProducerInterceptor.onSend(ProducerRecord)</code></a>
but before <a href="../../../../org/apache/kafka/clients/producer/ProducerInterceptor.html#onAcknowledgement-org.apache.kafka.clients.producer.RecordMetadata-java.lang.Exception-"><code>ProducerInterceptor.onAcknowledgement(RecordMetadata, Exception)</code></a> .
<p>
<a href="../../../../org/apache/kafka/clients/consumer/ConsumerInterceptor.html" title="interface in org.apache.kafka.clients.consumer"><code>ConsumerInterceptor</code></a> : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked before <a href="../../../../org/apache/kafka/clients/consumer/ConsumerInterceptor.html#onConsume-org.apache.kafka.clients.consumer.ConsumerRecords-"><code>ConsumerInterceptor.onConsume(ConsumerRecords)</code></a>
<p>
<a href="../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a> : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked before <a href="../../../../org/apache/kafka/common/serialization/Serializer.html#serialize-java.lang.String-T-"><code>Serializer.serialize(String, Object)</code></a>
<p>
<a href="../../../../org/apache/kafka/common/serialization/Deserializer.html" title="interface in org.apache.kafka.common.serialization"><code>Deserializer</code></a> : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked before <a href="../../../../org/apache/kafka/common/serialization/Deserializer.html#deserialize-java.lang.String-byte:A-"><code>Deserializer.deserialize(String, byte[])</code></a>
<p>
<code>MetricsReporter</code> : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked after first <a href="../../../../org/apache/kafka/clients/producer/KafkaProducer.html#send-org.apache.kafka.clients.producer.ProducerRecord-"><code>KafkaProducer.send(ProducerRecord)</code></a> invocation for Producer metrics reporter
and after first <a href="../../../../org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-long-"><code>KafkaConsumer.poll(long)</code></a> invocation for Consumer metrics reporters. The reporter may receive metric events from the network layer before this method is invoked.
<h4>Broker</h4>
There is a single invocation <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> on broker start-up and the cluster metadata will never change.
<p>
KafkaMetricsReporter : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked during the bootup of the Kafka broker. The reporter may receive metric events from the network layer before this method is invoked.
<p>
<code>MetricsReporter</code> : The <a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-"><code>onUpdate(ClusterResource)</code></a> method will be invoked during the bootup of the Kafka broker. The reporter may receive metric events from the network layer before this method is invoked.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/common/ClusterResourceListener.html#onUpdate-org.apache.kafka.common.ClusterResource-">onUpdate</a></span>&#8203;(<a href="../../../../org/apache/kafka/common/ClusterResource.html" title="class in org.apache.kafka.common">ClusterResource</a>&nbsp;clusterResource)</code></th>
<td class="colLast">
<div class="block">A callback method that a user can implement to get updates for <a href="../../../../org/apache/kafka/common/ClusterResource.html" title="class in org.apache.kafka.common"><code>ClusterResource</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="onUpdate-org.apache.kafka.common.ClusterResource-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onUpdate</h4>
<pre>void&nbsp;onUpdate&#8203;(<a href="../../../../org/apache/kafka/common/ClusterResource.html" title="class in org.apache.kafka.common">ClusterResource</a>&nbsp;clusterResource)</pre>
<div class="block">A callback method that a user can implement to get updates for <a href="../../../../org/apache/kafka/common/ClusterResource.html" title="class in org.apache.kafka.common"><code>ClusterResource</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clusterResource</code> - cluster metadata</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/kafka/common/ClusterResource.html" title="class in org.apache.kafka.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kafka/common/Configurable.html" title="interface in org.apache.kafka.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kafka/common/ClusterResourceListener.html" target="_top">Frames</a></li>
<li><a href="ClusterResourceListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>