CC00045.kafka——|Hadoop&kafka.V30|——|kafka.v30|kafkaAdminclient应用.v01|

本文主要探讨KafkaAdminClient在实际应用中的使用,并简要介绍其内部原理,该原理基于Kafka自定义的二进制协议。通过深入理解相关参数,能够更好地理解和操作KafkaAdminClient。
摘要由CSDN通过智能技术生成
一、KafkaAdminClient应用
### --- KafkaAdminClient应用说明

~~~     除了使用Kafka的bin目录下的脚本工具来管理Kafka,
~~~     还可以使用管理Kafka的API将某些管理查看的功能集成到系统中。
~~~     在Kafka0.11.0.0版本之前,可以通过kafka-core包(Kafka的服务端,采用Scala编写)中的
~~~     AdminClient和AdminUtils来实现部分的集群管理操作。
~~~     Kafka0.11.0.0之后,又多了一个AdminClient,
~~~     在kafka-client包下,一个抽象类,具体的实现是org.apache.kafka.clients.admin.KafkaAdminClient。
### --- 功能与原理介绍

~~~     # Kafka官网:
~~~     The AdminClient API supports managing and inspecting topics, brokers, acls, and other Kafka objects。
### --- KafkaAdminClient包含了一下几种功能(以Kafka1.0.2版本为准):

~~~     # 创建主题:
createTopics(final Collection<NewTopic> newTopics, final CreateTopicsOptions options)
~~~     # 删除主题:
deleteTopics(final Collection<String> topicNames, DeleteTopicsOptions options)
~~~     # 列出所有主题:
listTopics(final ListTopicsOptions options)

~~~     # 查询主题:
describeTopics(final Collection<String> topicNames, DescribeTopicsOptions options)
~~~     # 查询集群信息:
describeCluster(DescribeClusterOptions options)

~~~     # 查询配置信息:
describeConfigs(Collection<ConfigResource> configResources, final DescribeConfigsOptions options)
~~~     # 修改配置信息:
alterConfigs(Map<ConfigResource, Config> configs, final AlterConfigsOptions options)

~~~     # 修改副本的日志目录
alterReplicaLogDirs(Map<TopicPartitionReplica, String> replicaAssignment, final AlterReplicaLogDirsOptions options)
~~~     # 查询节点的日志目录信息:
describeLogDirs(Collection<Integer> brokers, DescribeLogDirsOptions options)

~~~     # 查询副本的日志目录信息:
describeReplicaLogDirs(Collection<TopicPartitionReplica> replicas, DescribeReplicaLogDirsOptions options)
~~~     # 增加分区:

createPartitions(Map<String, NewPartitions> newPartitions, final CreatePartitionsOptions options)
二、其内部原理是使用Kafka自定义的一套二进制协议来实现,详细可以参见Kafka协议。用到的参数:
属性说明重要性
bootstrap.servers向Kafka集群建立初始连接用到的host/port列表。
客户端会使用这里列出的所有服务器进行集群其他服务器的发现,
而不管是否指定了哪个服务器用作引导。
这个列表仅影响用来发现集群所有服务器的初始主机。
字符串形式:host1:port1,host2:port2,...由于这组服务器仅用于建立初始链接,
然后发现集群中的所有服务器,因此没有必要将集群中的所有地址写在这里。
一般最好两台,以防其中一台宕掉。
high
client.id生产者发送请求的时候传递给broker的id字符串。
用于在broker的请求日志中追踪什么应用发送了什么消息。
一般该id是跟业务有关的字符串。
medium
connections.max.idle.ms当连接空闲时间达到这个值,就关闭连接。
long型数据,默认:300000
medium
receive.buffer.bytesTCP接收缓存(SO_RCVBUF),如果设置为-1,则使用操作系统默认的值。
int类型值,默认65536,可选值:[-1,...]
medium
request.timeout.ms客户端等待服务端响应的最大时间。
如果该时间超时,则客户端要么重新发起请求,要么如果重试耗尽,请求失败。
int类型值,默认:120000
medium
security.protocol跟broker通信的协议:
PLAINTEXT, SSL,SASL_PLAINTEXT, SASL_SSL.string类型值,
默认:PLAINTEXT
medium
send.buffer.bytes用于TCP发送数据时使用的缓冲大小(SO_SNDBUF),
-1表示使用OS默认的缓冲区大小。
int类型值,默认值:131072
medium
reconnect.backoff.max.ms对于每个连续的连接失败,每台主机的退避将成倍增加,直至达到此最大值。
在计算退避增量之后,添加20%的随机抖动以避免连接风暴。
long型值,默认1000,可选值:[0,...]
low
reconnect.backoff.ms重新连接主机的等待时间。避免了重连的密集循环。
该等待时间应用于该客户端到broker的所有连接。
long型值,默认:50
low
retriesThe maximum number of times to retry a call before failing it.重试的次数,
达到此值,失败。int类型值,默认5。
low
retry.backoff.ms在发生失败的时候如果需要重试则该配置表示客户端等待多长时间再发起重试。
该时间的存在避免了密集循环。
long型值,默认值:100。
low
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值