mirror of https://github.com/apache/kafka.git
MINOR: Various javadoc improvement in clients and connect (#5878)
Fixed formatting issues and added links in a few classes
This commit is contained in:
parent
50a61c0dbf
commit
4e90af34c6
|
|
@ -29,29 +29,33 @@ import java.util.SortedSet;
|
|||
import java.util.TreeSet;
|
||||
|
||||
/**
|
||||
* The round robin assignor lays out all the available partitions and all the available consumers. It
|
||||
* <p>The round robin assignor lays out all the available partitions and all the available consumers. It
|
||||
* then proceeds to do a round robin assignment from partition to consumer. If the subscriptions of all consumer
|
||||
* instances are identical, then the partitions will be uniformly distributed. (i.e., the partition ownership counts
|
||||
* will be within a delta of exactly one across all consumers.)
|
||||
*
|
||||
* For example, suppose there are two consumers C0 and C1, two topics t0 and t1, and each topic has 3 partitions,
|
||||
* resulting in partitions t0p0, t0p1, t0p2, t1p0, t1p1, and t1p2.
|
||||
* <p>For example, suppose there are two consumers <code>C0</code> and <code>C1</code>, two topics <code>t0</code> and <code>t1</code>, and each topic has 3 partitions,
|
||||
* resulting in partitions <code>t0p0</code>, <code>t0p1</code>, <code>t0p2</code>, <code>t1p0</code>, <code>t1p1</code>, and <code>t1p2</code>.
|
||||
*
|
||||
* The assignment will be:
|
||||
* C0: [t0p0, t0p2, t1p1]
|
||||
* C1: [t0p1, t1p0, t1p2]
|
||||
* <p>The assignment will be:
|
||||
* <ul>
|
||||
* <li><code>C0: [t0p0, t0p2, t1p1]</code>
|
||||
* <li><code>C1: [t0p1, t1p0, t1p2]</code>
|
||||
* </ul>
|
||||
*
|
||||
* When subscriptions differ across consumer instances, the assignment process still considers each
|
||||
* <p>When subscriptions differ across consumer instances, the assignment process still considers each
|
||||
* consumer instance in round robin fashion but skips over an instance if it is not subscribed to
|
||||
* the topic. Unlike the case when subscriptions are identical, this can result in imbalanced
|
||||
* assignments. For example, we have three consumers C0, C1, C2, and three topics t0, t1, t2,
|
||||
* with 1, 2, and 3 partitions, respectively. Therefore, the partitions are t0p0, t1p0, t1p1, t2p0,
|
||||
* t2p1, t2p2. C0 is subscribed to t0; C1 is subscribed to t0, t1; and C2 is subscribed to t0, t1, t2.
|
||||
* assignments. For example, we have three consumers <code>C0</code>, <code>C1</code>, <code>C2</code>, and three topics <code>t0</code>, <code>t1</code>, <code>t2</code>,
|
||||
* with 1, 2, and 3 partitions, respectively. Therefore, the partitions are <code>t0p0</code>, <code>t1p0</code>, <code>t1p1</code>, <code>t2p0</code>,
|
||||
* <code>t2p1</code>, <code>t2p2</code>. <code>C0</code> is subscribed to <code>t0</code>; <code>C1</code> is subscribed to <code>t0</code>, <code>t1</code>; and <code>C2</code> is subscribed to <code>t0</code>, <code>t1</code>, <code>t2</code>.
|
||||
*
|
||||
* That assignment will be:
|
||||
* C0: [t0p0]
|
||||
* C1: [t1p0]
|
||||
* C2: [t1p1, t2p0, t2p1, t2p2]
|
||||
* <p>That assignment will be:
|
||||
* <ul>
|
||||
* <li><code>C0: [t0p0]</code>
|
||||
* <li><code>C1: [t1p0]</code>
|
||||
* <li><code>C2: [t1p1, t2p0, t2p1, t2p2]</code>
|
||||
* </ul>
|
||||
*/
|
||||
public class RoundRobinAssignor extends AbstractPartitionAssignor {
|
||||
|
||||
|
|
|
|||
|
|
@ -25,19 +25,19 @@ import java.util.Locale;
|
|||
/**
|
||||
* Represents an operation which an ACL grants or denies permission to perform.
|
||||
*
|
||||
* Some operations imply other operations.
|
||||
* Some operations imply other operations:
|
||||
* <ul>
|
||||
* <li><code>ALLOW ALL</code> implies <code>ALLOW</code> everything
|
||||
* <li><code>DENY ALL</code> implies <code>DENY</code> everything
|
||||
*
|
||||
* ALLOW ALL implies ALLOW everything
|
||||
* DENY ALL implies DENY everything
|
||||
* <li><code>ALLOW READ</code> implies <code>ALLOW DESCRIBE</code>
|
||||
* <li><code>ALLOW WRITE</code> implies <code>ALLOW DESCRIBE</code>
|
||||
* <li><code>ALLOW DELETE</code> implies <code>ALLOW DESCRIBE</code>
|
||||
*
|
||||
* ALLOW READ implies ALLOW DESCRIBE
|
||||
* ALLOW WRITE implies ALLOW DESCRIBE
|
||||
* ALLOW DELETE implies ALLOW DESCRIBE
|
||||
*
|
||||
* ALLOW ALTER implies ALLOW DESCRIBE
|
||||
*
|
||||
* ALLOW ALTER_CONFIGS implies ALLOW DESCRIBE_CONFIGS
|
||||
* <li><code>ALLOW ALTER</code> implies <code>ALLOW DESCRIBE</code>
|
||||
*
|
||||
* <li><code>ALLOW ALTER_CONFIGS</code> implies <code>ALLOW DESCRIBE_CONFIGS</code>
|
||||
* </ul>
|
||||
* The API for this class is still evolving and we may break compatibility in minor releases, if necessary.
|
||||
*/
|
||||
@InterfaceStability.Evolving
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@
|
|||
package org.apache.kafka.common.config;
|
||||
|
||||
/**
|
||||
* Keys that can be used to configure a topic. These keys are useful when creating or reconfiguring a
|
||||
* <p>Keys that can be used to configure a topic. These keys are useful when creating or reconfiguring a
|
||||
* topic using the AdminClient.
|
||||
*
|
||||
* The intended pattern is for broker configs to include a `log.` prefix. For example, to set the default broker
|
||||
* cleanup policy, one would set log.cleanup.policy instead of cleanup.policy. Unfortunately, there are many cases
|
||||
* <p>The intended pattern is for broker configs to include a <code>`log.`</code> prefix. For example, to set the default broker
|
||||
* cleanup policy, one would set <code>log.cleanup.policy</code> instead of <code>cleanup.policy</code>. Unfortunately, there are many cases
|
||||
* where this pattern is not followed.
|
||||
*/
|
||||
// This is a public API, so we should not remove or alter keys without a discussion and a deprecation period.
|
||||
|
|
|
|||
|
|
@ -23,23 +23,24 @@ import java.security.Principal;
|
|||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
/**
|
||||
* Principals in Kafka are defined by a type and a name. The principal type will always be "User"
|
||||
* <p>Principals in Kafka are defined by a type and a name. The principal type will always be <code>"User"</code>
|
||||
* for the simple authorizer that is enabled by default, but custom authorizers can leverage different
|
||||
* principal types (such as to enable group or role-based ACLs). The {@link KafkaPrincipalBuilder} interface
|
||||
* is used when you need to derive a different principal type from the authentication context, or when
|
||||
* you need to represent relations between different principals. For example, you could extend
|
||||
* {@link KafkaPrincipal} in order to link a user principal to one or more role principals.
|
||||
*
|
||||
* For custom extensions of {@link KafkaPrincipal}, there two key points to keep in mind:
|
||||
*
|
||||
* 1. To be compatible with the ACL APIs provided by Kafka (including the command line tool), each ACL
|
||||
* <p>For custom extensions of {@link KafkaPrincipal}, there two key points to keep in mind:
|
||||
* <ol>
|
||||
* <li>To be compatible with the ACL APIs provided by Kafka (including the command line tool), each ACL
|
||||
* can only represent a permission granted to a single principal (consisting of a principal type and name).
|
||||
* It is possible to use richer ACL semantics, but you must implement your own mechanisms for adding
|
||||
* and removing ACLs.
|
||||
* 2. In general, {@link KafkaPrincipal} extensions are only useful when the corresponding Authorizer
|
||||
* <li>In general, {@link KafkaPrincipal} extensions are only useful when the corresponding Authorizer
|
||||
* is also aware of the extension. If you have a {@link KafkaPrincipalBuilder} which derives user groups
|
||||
* from the authentication context (e.g. from an SSL client certificate), then you need a custom
|
||||
* authorizer which is capable of using the additional group information.
|
||||
* </ol>
|
||||
*/
|
||||
public class KafkaPrincipal implements Principal {
|
||||
public static final String USER_TYPE = "User";
|
||||
|
|
|
|||
|
|
@ -23,12 +23,12 @@ import org.apache.kafka.common.errors.PolicyViolationException;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* An interface for enforcing a policy on alter configs requests.
|
||||
* <p>An interface for enforcing a policy on alter configs requests.
|
||||
*
|
||||
* Common use cases are requiring that the replication factor, min.insync.replicas and/or retention settings for a
|
||||
* <p>Common use cases are requiring that the replication factor, <code>min.insync.replicas</code> and/or retention settings for a
|
||||
* topic remain within an allowable range.
|
||||
*
|
||||
* If <code>alter.config.policy.class.name</code> is defined, Kafka will create an instance of the specified class
|
||||
* <p>If <code>alter.config.policy.class.name</code> is defined, Kafka will create an instance of the specified class
|
||||
* using the default constructor and will then pass the broker configs to its <code>configure()</code> method. During
|
||||
* broker shutdown, the <code>close()</code> method will be invoked so that resources can be released (if necessary).
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -24,12 +24,12 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* An interface for enforcing a policy on create topics requests.
|
||||
* <p>An interface for enforcing a policy on create topics requests.
|
||||
*
|
||||
* Common use cases are requiring that the replication factor, min.insync.replicas and/or retention settings for a
|
||||
* <p>Common use cases are requiring that the replication factor, <code>min.insync.replicas</code> and/or retention settings for a
|
||||
* topic are within an allowable range.
|
||||
*
|
||||
* If <code>create.topic.policy.class.name</code> is defined, Kafka will create an instance of the specified class
|
||||
* <p>If <code>create.topic.policy.class.name</code> is defined, Kafka will create an instance of the specified class
|
||||
* using the default constructor and will then pass the broker configs to its <code>configure()</code> method. During
|
||||
* broker shutdown, the <code>close()</code> method will be invoked so that resources can be released (if necessary).
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import java.util.Objects;
|
|||
/**
|
||||
* <p>
|
||||
* Base class for records containing data to be copied to/from Kafka. This corresponds closely to
|
||||
* Kafka's ProducerRecord and ConsumerRecord classes, and holds the data that may be used by both
|
||||
* Kafka's {@link org.apache.kafka.clients.producer.ProducerRecord ProducerRecord} and {@link org.apache.kafka.clients.consumer.ConsumerRecord ConsumerRecord} classes, and holds the data that may be used by both
|
||||
* sources and sinks (topic, kafkaPartition, key, value). Although both implementations include a
|
||||
* notion of offset, it is not included here because they differ in type.
|
||||
* </p>
|
||||
|
|
|
|||
|
|
@ -29,14 +29,15 @@ import java.util.Map;
|
|||
* <p>
|
||||
* Connectors manage integration of Kafka Connect with another system, either as an input that ingests
|
||||
* data into Kafka or an output that passes data to an external system. Implementations should
|
||||
* not use this class directly; they should inherit from SourceConnector or SinkConnector.
|
||||
* not use this class directly; they should inherit from {@link org.apache.kafka.connect.source.SourceConnector SourceConnector}
|
||||
* or {@link org.apache.kafka.connect.sink.SinkConnector SinkConnector}.
|
||||
* </p>
|
||||
* <p>
|
||||
* Connectors have two primary tasks. First, given some configuration, they are responsible for
|
||||
* creating configurations for a set of {@link Task}s that split up the data processing. For
|
||||
* example, a database Connector might create Tasks by dividing the set of tables evenly among
|
||||
* tasks. Second, they are responsible for monitoring inputs for changes that require
|
||||
* reconfiguration and notifying the Kafka Connect runtime via the ConnectorContext. Continuing the
|
||||
* reconfiguration and notifying the Kafka Connect runtime via the {@link ConnectorContext}. Continuing the
|
||||
* previous example, the connector might periodically check for new tables and notify Kafka Connect of
|
||||
* additions and deletions. Kafka Connect will then request new configurations and update the running
|
||||
* Tasks.
|
||||
|
|
|
|||
Loading…
Reference in New Issue