Kafka教程(二)---------------Kafka架构初识

一. 消息队列

1. 存在价值

  • 解耦

解耦消息产出组件与接收消息组件,如果两者强关联,那么一边有修改,另一边就需要跟着修改

解耦之后,消息产出组件与接收消息组件可以自己独立修改,并且还能横向扩展

消息队列



  • 数据备份

消息会持久化或者其他方式保存一段时间,两端出现任何问题不会导致数据丢失,两端服务在启动之后可以恢复数据


  • 异步通信


之前的方式,接收方必须及时接收消息并进行存储。引入消息系统后消息消费方可以自己控制何时去处理消息数据


 

2. 常见消息队列

应用在分布式系统中的消息队列叫做分布式消息队列,常见的分布式消息队列有:ActiveMQ,RabbitMQ,kafka


二. Kafka shell操作

首先可以通过一系列操作对kafka有个直观的认识,里面的有些概念可能不明白,后面将会详细讲解

注意:下面操作中zkhost、kafkahost请各位都替换为自己的ip或者hostname

1) 创建topic

这个topic叫做test,只有一个分区,一个副本。

 bin/kafka-topics.sh --create --zookeeper zkhost:2181 --replication-factor 1 --partitions 1 --topic test

2) 查看所有topic

bin/kafka-topics.sh --list --zookeeper zkhost:2181

3) 向某个发送消息

bin/kafka-console-producer.sh --broker-list kafkahost:9092 --topic test

即可发送消息了


4) 接收消息

bin/kafka-console-consumer.sh --zookeeper zkhost:2181 --topic test --from-beginning


5) 查看topic详情

bin/kafka-topics.sh --describe --zookeeper zkhost:2181 --topic test


6) 删除topic

 ./bin/kafka-topics  --delete --zookeeper  zkhost:2181  --topic test

前提是server.properties中:  delete.topic.enable=true

7) 查询topic的offset的范围

查询topic名字为test的offset的最小值:

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kafkahost:9092 -topic test --time -2

输出

test:0:1288

查询offset的最大值:

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kafkahost:9092 -topic test --time -1

输出

test:0:7885

从上面的输出可以看出topic:test只有一个partition:0 offset范围为:[1288,7885]


三. Kafka中的重要概念

  • Broker

Kafka是分布式的,在kafka集群中,每一个kafka服务进程都可以称为一个broker

(可以和第一节的broker id进行对比)

 

  • Topic

也就是消息的名字,是业务上对消息的分组与区分。比如:告警的消息队列、错误信息的消息队列、问候信息的消息队列。

 

  •  Partition

对于同一个topic,可以分为多个partition,比如topic1分为3个partition,partition0~partition2。相当于把一个整体分为3个部分,这样就实现了负载均衡

所以可以看到,每个partition上的数据虽然不一定相邻,但一定是有序的

至于每一条数据如何分配到不同的broker的,这个后一节实现细节中会详细讲解


  • replication

为了保证数据的容错性,通常会设置replication。这个就是数据备份的功能。

比如说设置为replication=2,那么每个partition都会进行备份




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
kafka-connect-transform-kryptonite 是 Kafka Connect 的一个转换器插件。Kafka Connect 是一个可扩展的分布式数据集成工具,可用于在 Apache Kafka 和外部系统之间进行可靠和高效的数据流传输。而 Kafka Connect 转换器是用于对数据进行转换、过滤或处理的插件。 Kafka Connect 是一个开源的分布式数据集成框架,用于连接和处理来自各种数据源的数据,例如数据库、消息队列和文件系统等。它提供了一个统一的、可扩展的架构,允许用户将数据从多个来源导入到 Kafka 中,并将数据导出到多个目标系统。这为数据集成提供了更加灵活和可靠的方式,且能够满足各种实时数据处理的需求。 Kafka Connect 的一个关键特性是插件化的架构,使得用户可以根据自己的需求,选择和配置合适的插件。其中,kafka-connect-transform-kryptonite 插件就是其中之一。Kryptonite 可以理解为一种“解除”或“削弱”转换器,它可能采用一些特定的规则或算法,对输入的数据进行加工、转换或过滤。 使用 kafka-connect-transform-kryptonite 插件,我们可以根据具体的业务需求,对 Kafka 中的消息进行处理。例如,我们可以通过 Kryptonite 转换器,将消息中的某些字段进行加密,以保护敏感数据的安全;或者根据一些规则,对消息进行过滤和筛选,只保留我们关心的数据。 总之,kafka-connect-transform-kryptonite 是 Kafka Connect 提供的一个转换器插件,可以用于对数据进行加工、转换和过滤。通过这个插件,我们可以根据业务需求对 Kafka 中的消息进行定制化处理,以满足不同场景下的数据集成和处理需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值