1.目标

我们可以在Kafka集群上执行几个Apache Kafka Operations 。因此,在本文中,我们将详细讨论所有Apache Kafka操作。它还包括有助于实现这些Kafka操作的命令。
所以,让我们详细讨论所有Kafka Operations。

使用命令进行Apache Kafka操作

2.什么是Apache Kafka Operations?

下面,我们正在讨论卡夫卡的运作,让我们逐一看到它们:

一个。添加和删​​除Kafka主题

我们可以自动和手动添加和删除Kafka主题。添加的命令将是:

> bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –create –Topic my_Topic_name
–partitions –replication-factor –config x=y
 

此外,Kafka Brokers是由服务器编写和复制的消息。但是,通过复制因子,完成了整个复制过程。尽管如此,请确保标准复制因子应为2或3,以便在没有任何障碍的情况下进行弹跳。
主题分为多个日志,分区计数控制它。但是,分区计数包含以下功能,例如它们应该单独放在一台服务器上。因此,通过这种方式,总共50个分区将产生50个服务器。此外,分区在消费者之间获得最大均衡。基本上,添加主题会覆盖默认设置。

湾 如何修改Kafka主题

我们可以通过添加和删除上下文来最好地修改主题。要添加分区,命令是 -

> bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –alter –Topic my_Topic_name
–partitions

为了将数据划分为更小的部分,我们使用分区。我们应该按照以下方式添加配置:
阅读Apache Kafka Workflow | Kafka Pub-Sub Messaging

  1. > bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –alter –Topic my_Topic_name –config x=y

为了删除配置:

  1. > bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –alter –Topic my_Topic_name –deleteConfig x

另外,要删除整个主题,

  1. > bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –delete –Topic my_Topic_name

C。杰出的岔路

如果任何Kafka Broker关闭或失败并选择新的分区领导者,Kafka集群将自动检测。但是,如果服务器出现故障或故意将其关闭以进行维护,则会发生这种情况。此外,Kafka支持更优雅的机制来停止服务器,而不仅仅是为了配置更改而销毁服务器。此外,当我们以优雅的方式减少服务器时,它有两个优化:

  1. 群集将自动检测它,不负责任,Kafka代理是否失败或损坏,如果任何服务器发生故障,它也可以精美地关闭服务器。
  2. 如果完成,则删除日志恢复的需要,因此进程变得更快。此外,它会在关闭之前将该服务器的所有分区发送到其副本。

d。 在Kafka集群之间镜像数据

镜像过程从源读取材料并写入目标。基本上,这个镜像复制了源代码。然后,将其写在目的地上。
了解Kafka性能调优 - Kafka优化的方法
为了保持流程的稳定性,Mirroring可以提高吞吐量。此外,我们可以使用很多。它将数据从集群传输到集群。但是,请确保源群集和目标群集彼此几乎不同。
基本上,镜子制造商对两者都是一样的。因为镜像后的目标群集数据与镜像之前源群集包含的数据相同。尽管由于其数据复制和不同的偏移和分区,使用不同的地址,两个名称在两个集群中都是相同的。
因此,它提供较少的容错能力,因为镜像集群将复制具有不同地址的消费者中的数据。但是,我们应该使用正常的群集内复制,以获得更多的容错能力。
要从两个输入镜像名为your-Topic的单个主题,该命令为:

> bin/Kafka-run-class.sh Kafka.tools.MirrorMaker
–consumer.config consumer-.properties –consumer.config consumer-
.properties
–producer.config producer.properties –whitelist your-Topic
 

即  找到消费者的位置

找出消费者的立场非常重要。因此,为了找出消费者的位置,命令是:

> bin/Kafka-run-class.sh Kafka.tools.ConsumerOffsetChecker –zkconnect localhost: –group test
 

F。扩展您的Kafka群集

通过添加具有新ID的服务器,我们可以随时向集群添加新服务器。此外,我们使用新服务器启动它们。但是除非将分区分配给这些新服务器,否则它们将完全不起作用并且理想地坐下来。因此,现有的需要稍微改变它们的位置,以添加新的位置。
探索Apache Kafka Producer for Beginners
因此,自动将数据移到封面后面。现在,我们必须添加新服务器。但它的位置必须落后于寻求迁移的分区。因此,新引入的服务器在迁移分区后面。此外,迁移分区中的所有数据都将复制到服务器。最终,分区被踢出。
基本上,我们通过3种方式运行这个分区重新分配:
-generate:
将所有主题分配给新服务器非常重要。因此,要在迁移之前将所有分区移动到新服务器,此工具将创建重新分配工具。
-execute:
执行时,该工具在执行计划中按用户的计划启动主题的重新分配。
-verify:
一旦重新分配完成,此工具将验证。该工具还可以讲述状态。它可以完成,正在进行,完成或即使失败也可以。

G。 自动迁移数据

基本上,重新分配工具将主题从当前服务器分配给新服务器。但是,为了移动整个主题而不是移动它的一部分,它会扩展分区。因此,要移动主题的服务器列表包含在单个列表和另一个要从中传输主题的服务器列表中。
此外,从旧服务器到新服务器的Kafka主题通过重新分配工具传输进行传输,并且所有副本也会传输到新服务器,从而保持镜像均匀。
我们来讨论Apache Kafka Streams | 流处理拓扑
首先,要保存主题,请创建JSON文件。创建此文件是:

> cat Topics-to-move.json
{“Topics”: [{“Topic”: “top1”},
{“Topic”: “top2”}],
“version”:
}
 

top1和top2是主题。
生成JSON文件后引入赋值:

  1. > bin/Kafka-reassign-partitions.sh –zookeeper localhost: –Topics-to-move-json-file Topics-to-move.json –broker-list “,” –generate

作业:

  1. {“version”:,
    “partitions”:[{“Topic”:”top1″,”partition”:,”replicas”:[,]},
    {“Topic”:”top1″,”partition”:,”replicas”:[,]},
    {“Topic”:”top2″,”partition”:,”replicas”:[,]},
    {“Topic”:”top2″,”partition”:,”replicas”:[,]},
    {“Topic”:”top1″,”partition”:,”replicas”:[,]},
    {“Topic”:”top2″,”partition”:,”replicas”:[,]}]
    }

此外,重新分配:

{“Version”:,
“Partitions”:[{“Topic”:”top1″,”partition”:,”replicas”: [,] } ,
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]}]
}
 

因此,我们将所有分区从主题top1,top2移动到服务器1和2.但是,请确保保存新分配。然后将所有主题top1top2移动到新服务器5和6将很容易。通过这种方式,我们知道实际需要从哪个服务器移动到哪个服务器。
因此,在JSON文件中,将保存主题的新位置。此外,保存主题的当前位置以保留备份,以防我们真的想要将主题带回其旧服务器。
命令是:

  1. > bin/Kafka-reassign-partitions.sh –zookeeper localhost: –reassignment-json-file expand-cluster-reassignment.json –execute

现在,副本分配给现在的副本:

{“Version”:,
“Partitions”: [{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]}]
}
  1. { “版本”:1 ,
  2. “分区”:[ { “主题”:” TOP1“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  3. { “主题”:” TOP1“,”分区”:0 ,”副本”:[ 3 ,4 ] } ,
  4. { “主题”:” TOP2“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  5. { “主题”:” TOP2“,”分区”:0 ,”副本”:[ 3 ,4 ] } ,
  6. { “主题”:” TOP1“,”分区”:1 ,”副本”:[ 2 ,3 ] } ,
  7. { “主题”:” TOP2“,”分区”:1 ,”副本”:[ 2 ,3 ] } ]
  8. }

为了重新分配分区:

{“Version”:,
“Partitions”:[{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]}]
}
  1. { “版本”:1 ,
  2. “分区”:[ { “主题”:” TOP1“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  3. { “主题”:” TOP1“,”分区”:0 ,”副本”:[ 1 ,2 ] } ,
  4. { “主题”:” TOP2“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  5. { “主题”:” TOP2“,”分区”:0 ,”副本”:[ 1 ,2 ] } ,
  6. { “主题”:” TOP1“,”分区”:1 ,”副本”:[ 1 ,2 ] } ,
  7. { “主题”:” TOP2“,”分区”:1 ,”副本”:[ 1 ,2 ] } ]
  8. }

此外,要验证重新分配的过程是否完美,请使用以下命令:

> bin/Kafka-reassign-partitions.sh –zookeeper localhost: –reassignment-json-file expand-cluster-reassignment.json –verify
  1. > bin / Kafka-reassign-partitions.sh -zookeeper localhost:2181 -reassignment-json-file expand-cluster-reassignment.json -verify

以下是验证输出:

Reassignment of partition [top1,] completed successfully
  1. 分区的重新分配[ TOP1,0 ] 成功完成

分区[top1,1]的重新分配已成功完成分区[top1,2]的重新分配已成功完成分区[top2,0]的重新分配正在进行分区[top2,1]的重新分配已成功完成分区[top2,2]的重新分配进行中。
为了分配,我们可以为新服务器选择一定数量的分区,而不是移动整个分区集。此外,我们必须直接进入执行步骤。
让我们学习Apache Kafka + Spark Streaming Integration

H。 退休服务器

有时很少有服务器处于停用状态。然后,我们需要从退休服务器中删除主题到新服务器。虽然为了帮助这个过程,新工具的生成仍在进行中。

一世。 数据中心

为了维护操作,我们使用数据中心。基本上,他们管理数据管道。我们正在与一些本地集群一起运营,因此,数据中心直接与Kafka中最近的集群进行通信。
基本上,数据中心独立工作。因此,我们可以说这些数据中心可以独立工作,即使中间链接被破坏,也能最好地运行。另外,请记住,内部链接的失败会导致镜像过程失败。而且,只有当链接再次被重新开发时,它才会回到它的实际位置。
此外,在主题中,一些数据中心要求查看完整的数据集。在这种情况下,开始镜像数据集群以显示给新数据中心。然后,这些镜像数据被累积到数据集群,当我们需要应用程序完整读取完整数据时,我们可以读取这些数据集群。
阅读Apache Kafka Security | Kafka的需求和组件
要获得群集,此部署模式非常合适,可以保证延迟。与其他更简单的消息传递工具相比,Kafka工具提供了更高的吞吐量,即使是高延迟。这是因为Kafka在两侧(即来源和目的地)批量处理数据。这里,来源是指生产者,而目的地是指消费者。
此外,请确保防止使用高延迟链接,这将为Kafka技术的写入行为带来高延迟。因此,如果网络出现问题,Kafka将无法在所有位置使用。
所以,这完全是关于卡夫卡运营的。希望你喜欢我们的解释。

3.结论:卡夫卡行动

因此,我们已经详细了解了所有Apache Kafka Operations。我们讨论了不同的Kafka操作,例如添加和删除Kafka主题,修改Kafka主题,区分关闭等等。

使用命令进行Apache Kafka操作的更多相关文章

  1. Kafka-Docker:使用Docker运行Apache Kafka的步骤

    1.目标 在这个Kafka教程中,我们将学习Kafka-Docker的概念.此外,我们将在Kafka中看到Docker的卸载过程.这包括使用Docker 运行Apache Kafka的所有步骤  .除 ...

  2. 使用JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  3. Apache Kafka Consumer 消费者集

    1.目标 在我们的上一篇文章中,我们讨论了Kafka Producer.今天,我们将讨论Kafka Consumer.首先,我们将看到什么是Kafka Consumer和Kafka Consumer的 ...

  4. Apache Kafka用例

    1.目标 在我们上一篇Kafka教程中,我们讨论了Kafka Pros and Cons.今天,在这篇Kafka文章中,我们将讨论Apache Kafka用例和Kafka应用程序.Kafka是新数据堆 ...

  5. JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  6. 顶级Apache Kafka术语和概念

    1.卡夫卡术语 基本上,Kafka架构  包含很少的关键术语,如主题,制作人,消费者, 经纪人等等.要详细了解Apache Kafka,我们必须首先理解这些关键术语.因此,在本文“Kafka术语”中, ...

  7. 为什么Apache Kafka如此受欢迎

    1.目标 今天,在这个Kafka教程中,我们将学习所有Kafka功能,如可扩展性,可靠性,耐用性,这些都说明了Kafka如此受欢迎的原因.我们将详细讨论Kafka的每个功能.但在那之前让我们明白什么是 ...

  8. Apache Kafka简介与安装(二)

    Kafka在Windows环境上安装与运行 简介 Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.它现在是Apache旗下的一个 ...

  9. DataPipeline |《Apache Kafka实战》作者胡夕:Apache Kafka监控与调优

    胡夕 <Apache Kafka实战>作者,北航计算机硕士毕业,现任某互金公司计算平台总监,曾就职于IBM.搜狗.微博等公司.国内活跃的Kafka代码贡献者. 前言 虽然目前Apache ...

随机推荐

  1. HDU - 5513 Efficient Tree(轮廓线DP)

    前言 最近学了基于连通性的状压DP,也就是插头DP,写了几道题,发现这DP实质上就是状压+分类讨论,轮廓线什么的也特别的神奇.下面这题把我WA到死- HDU-5531 Efficient Tree 给 ...

  2. Java中多态

    多态:把子类看成是父类,把实现类看成是接口,这样类就具有多种形态,称为多态. 在多态中访问成员变量,访问的是父类中的成员变量. 在多态中访问成员方法,先访问的是子类,看看子类有没有覆盖重写要访问的父类 ...

  3. vault 使用 中间ca 进行证书管理

    使用vault 进行pki 管理是很方便的,以前测试的都是由根证书进行证书签发,这次使用中间ca 进行签发 所以会有一个证书连 测试使用docker-compose 运行 环境准备 docker-co ...

  4. vue-cli3 ios10白屏问题解决思路

    在出现了这个问题之后先不要盲目的去瞎试,根据网上的方法试了个遍也没解决问题 先看报的是什么错,再针对的解决问题 首先出现的报错是 SyntaxError: Unexpected token '*'  ...

  5. Android App专项测试

    https://www.jianshu.com/p/141b84f14505 http://www.cnblogs.com/finer/p/9601140.html 专项 概念 adb命令 App启动 ...

  6. Monkey框架(基础知识篇) - monkey启动与参数介绍

    一.monkey启动 直接PC启动:> adb shell monkey [options] <count> shell 端启动:> adb shell >monkey ...

  7. 【大数据作业十一】分布式并行计算MapReduce

    作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319 1.用自己的话阐明Hadoop平台上HDFS和MapReduce的功 ...

  8. 删除N天前的log日志文件:RollingFileAppender,DailyRollingFileAppender,/etc/cron

    1. 如果您使用的是Log4j,且采用的RollingFileAppender方式, 通过设置maxBackupIndex属性来指定要保留的日志文件数的最大值可以间接实现删除N天前的日志文件. 2. ...

  9. Java自己实现HTTP服务器来理解GET和POST区别

    GET请求和POST请求有什么区别?GET请求的参数在URL的问号后面显示,而POST参数不在URL上:POST可以比GET请求更大的数据…一般的回答都是这样.   但是作为一个高端大气上档次的程序员 ...

  10. flowable表简要说明

    1. Flowable数据库表命名规则 ACT_RE_* ’RE’表示repository(存储).RepositoryService接口操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资 ...