Kafka背景及架构介绍:
http://www.infoq.com/cn/articles/kafka-analysis-part-1/
kafka中文教程:
http://orchome.com/kafka/index
Introduction:
http://kafka.apache.org/intro
Quickstart:
http://kafka.apache.org/quickstart
上面两个中文链接是Kafka的产生的背景和中文教程,后面两个英文连接对应的是官方kafka的框架介绍和入门教程,这些我们不再说,直接下载kafka,我们以最新版本0.11.0.1为准,来看认识一下kafka的目录结构:
下载kafka:
[donald@Donald_Draper ~]$ ls
Desktop Documents Downloads kafka_2.11-0.11.0.1.tgz Music Pictures Public Templates Videos
[donald@Donald_Draper ~]$
解压:
[donald@Donald_Draper ~]$ tar -zxvf kafka_2.11-0.11.0.1.tgz
kafka_2.11-0.11.0.1/
kafka_2.11-0.11.0.1/LICENSE
kafka_2.11-0.11.0.1/NOTICE
kafka_2.11-0.11.0.1/bin/
...
kafka_2.11-0.11.0.1/libs/connect-json-0.11.0.1.jar
kafka_2.11-0.11.0.1/libs/connect-file-0.11.0.1.jar
kafka_2.11-0.11.0.1/libs/kafka-streams-0.11.0.1.jar
kafka_2.11-0.11.0.1/libs/rocksdbjni-5.0.1.jar
kafka_2.11-0.11.0.1/libs/kafka-streams-examples-0.11.0.1.jar
[donald@Donald_Draper ~]$ ls
Desktop Documents Downloads kafka_2.11-0.11.0.1 kafka_2.11-0.11.0.1.tgz Music Pictures Public Templates Videos
[donald@Donald_Draper ~]$
[donald@Donald_Draper ~]$ cd kafka_2.11-0.11.0.1/
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ ls
bin config libs LICENSE NOTICE site-docs
从上面来看解压后的文件夹 kafka_2.11-0.11.0.1内有bin,config,libs主要文件夹,
下面分别来看这几个文件夹下的文件:
先来看bin目录下:
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ cd bin/
[donald@Donald_Draper bin]$ ls
connect-distributed.sh kafka-delete-records.sh kafka-simple-consumer-shell.sh
connect-standalone.sh kafka-mirror-maker.sh kafka-streams-application-reset.sh
kafka-acls.sh kafka-preferred-replica-election.sh kafka-topics.sh
kafka-broker-api-versions.sh kafka-producer-perf-test.sh kafka-verifiable-consumer.sh
kafka-configs.sh kafka-reassign-partitions.sh kafka-verifiable-producer.sh
kafka-console-consumer.sh kafka-replay-log-producer.sh windows
kafka-console-producer.sh kafka-replica-verification.sh zookeeper-security-migration.sh
kafka-consumer-groups.sh kafka-run-class.sh zookeeper-server-start.sh
kafka-consumer-offset-checker.sh kafka-server-start.sh zookeeper-server-stop.sh
kafka-consumer-perf-test.sh kafka-server-stop.sh zookeeper-shell.sh
从上面来看bin主要是sh脚本,
再来看config文件夹:
[donald@Donald_Draper bin]$ cd ..
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ ls
bin config libs LICENSE NOTICE site-docs
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ cd config/
[donald@Donald_Draper config]$ ls
connect-console-sink.properties connect-file-source.properties log4j.properties zookeeper.properties
connect-console-source.properties connect-log4j.properties producer.properties
connect-distributed.properties connect-standalone.properties server.properties
connect-file-sink.properties consumer.properties tools-log4j.properties
主要生产者消息者配置文件,日志配置文件,broker配置文件,connect和内置zookeeper配置文件;
再来看site-docs文件夹:
[donald@Donald_Draper config]$ cd ..
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ ls
bin config libs LICENSE NOTICE site-docs
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ cd site-docs/
[donald@Donald_Draper site-docs]$ ls
kafka_2.11-0.11.0.1-site-docs.tgz
这个应该是帮助文档;再来看lib文件夹
[donald@Donald_Draper site-docs]$
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ ls
bin config libs LICENSE NOTICE site-docs
[donald@Donald_Draper kafka_2.11-0.11.0.1]$ cd libs/
[donald@Donald_Draper libs]$ ls
aopalliance-repackaged-2.5.0-b05.jar jersey-common-2.24.jar kafka_2.11-0.11.0.1-test-sources.jar
argparse4j-0.7.0.jar jersey-container-servlet-2.24.jar kafka_2.11-0.11.0.1-test-sources.jar.asc
commons-lang3-3.5.jar jersey-container-servlet-core-2.24.jar kafka-clients-0.11.0.1.jar
connect-api-0.11.0.1.jar jersey-guava-2.24.jar kafka-log4j-appender-0.11.0.1.jar
connect-file-0.11.0.1.jar jersey-media-jaxb-2.24.jar kafka-streams-0.11.0.1.jar
connect-json-0.11.0.1.jar jersey-server-2.24.jar kafka-streams-examples-0.11.0.1.jar
connect-runtime-0.11.0.1.jar jetty-continuation-9.2.15.v20160210.jar kafka-tools-0.11.0.1.jar
connect-transforms-0.11.0.1.jar jetty-http-9.2.15.v20160210.jar log4j-1.2.17.jar
guava-20.0.jar jetty-io-9.2.15.v20160210.jar lz4-1.3.0.jar
hk2-api-2.5.0-b05.jar jetty-security-9.2.15.v20160210.jar maven-artifact-3.5.0.jar
hk2-locator-2.5.0-b05.jar jetty-server-9.2.15.v20160210.jar metrics-core-2.2.0.jar
hk2-utils-2.5.0-b05.jar jetty-servlet-9.2.15.v20160210.jar osgi-resource-locator-1.0.1.jar
jackson-annotations-2.8.5.jar jetty-servlets-9.2.15.v20160210.jar plexus-utils-3.0.24.jar
jackson-core-2.8.5.jar jetty-util-9.2.15.v20160210.jar reflections-0.9.11.jar
jackson-databind-2.8.5.jar jopt-simple-5.0.3.jar rocksdbjni-5.0.1.jar
jackson-jaxrs-base-2.8.5.jar kafka_2.11-0.11.0.1.jar scala-library-2.11.11.jar
jackson-jaxrs-json-provider-2.8.5.jar kafka_2.11-0.11.0.1.jar.asc scala-parser-combinators_2.11-1.0.4.jar
jackson-module-jaxb-annotations-2.8.5.jar kafka_2.11-0.11.0.1-javadoc.jar slf4j-api-1.7.25.jar
javassist-3.21.0-GA.jar kafka_2.11-0.11.0.1-javadoc.jar.asc slf4j-log4j12-1.7.25.jar
javax.annotation-api-1.2.jar kafka_2.11-0.11.0.1-scaladoc.jar snappy-java-1.1.2.6.jar
javax.inject-1.jar kafka_2.11-0.11.0.1-scaladoc.jar.asc validation-api-1.1.0.Final.jar
javax.inject-2.5.0-b05.jar kafka_2.11-0.11.0.1-sources.jar zkclient-0.10.jar
javax.servlet-api-3.1.0.jar kafka_2.11-0.11.0.1-sources.jar.asc zookeeper-3.4.10.jar
javax.ws.rs-api-2.0.1.jar kafka_2.11-0.11.0.1-test.jar
jersey-client-2.24.jar kafka_2.11-0.11.0.1-test.jar.asc
[donald@Donald_Draper libs]$
从libs中的jar包来看,用到了aop,jackson,ws,snappy(压缩),zookeeper,slf4j-log4j,有kafka使用scala开发的,可以到scala相关的包。
分享到:
相关推荐
**二、Kafka目录结构分析** - **bin**:包含Kafka的各种执行脚本,如启动服务、创建Topic等。 - **config**:存放Kafka的配置文件,如 `server.properties`。 - **libs**:包含运行Kafka所需的JAR包。 - **logs**:...
目录结构 docker-compose.yml README.md 其它目录均为配置文件或初始化文件需要手动处理 其它目录均为容器的一些配置文件,如需自定义请结合自己的docker熟练程度修改 快速开始 运行 docker-compose up -d 全部运行...
了解这些工具和目录结构对于优化Kafka集群的性能和稳定性至关重要。 首先,我们来看Kafka自带的维护脚本工具: 1. **kafka-topics.sh**:这个脚本主要用于管理Kafka的主题(topics)。你可以使用它来创建、修改、...
1. **集群可视化**:Kafka Tool能够清晰地展示Kafka集群的结构,包括Brokers、Topics、Partitions以及Replicas的状态,让用户可以一目了然地了解集群的运行状况。 2. **主题管理**:通过该工具,用户可以创建、删除...
3. **日志存储**:Kafka将消息持久化到磁盘,形成日志结构。这种设计使得Kafka能够高效地追加消息,并支持高效的读取。每个分区的日志由一系列消息组成,按顺序存储。 4. **Consumer Group**:消费者通过Consumer ...
* 模式(Schema):Kafka 中的模式系统,用于描述消息的结构和格式。 * 主题(Topic):Kafka 中的主题概念,用于分类和组织消息。 * 分区(Partition):Kafka 中的分区机制,用于分布式存储和处理消息。 * 生产者...
在这个目录下,你可能会找到如下的文件和结构: 1. `config`:配置文件夹,可能包含了KafkaProducer或KafkaConsumer的配置信息,如bootstrap.servers(Kafka集群地址)、acks(确认策略)等。 2. `producer`:...
- **下载与解压**:首先,从官方网站或镜像站点下载kafka_2.11-2.0.0.tgz,解压缩后得到Kafka的目录结构,包含配置文件、脚本等。 - **配置环境变量**:设置KAFKA_HOME指向解压后的目录,并将bin目录添加到PATH...
Kafka集群为每个topic维护一个分区日志,分区是一个有序且不可变的记录集,并且数据记录会不断地追加到结构化的commit log文件中。每个记录都有一个offset标识,表示顺序。 Kafka的四个核心API包括: 1. 生产者API...
在Kafka中,消息通常带有结构化的数据,Schema Registry用于管理这些数据的模式,保证了数据的兼容性和一致性。 10. **监控与管理**: Kafka提供了命令行工具和Web界面(Kafka Manager)来监控和管理集群状态,...
解压后的目录结构一般如下: - `config/`:包含Kafka和Zookeeper的配置文件。 - `bin/`:包含启动和停止Kafka及Zookeeper的脚本。 - `libs/`:存放Kafka运行所需的库文件。 - `docs/`:可能包含用户手册和API文档。...
例如,假设解压路径为`/opt/software`,则解压后的目录结构如下所示: ``` /opt/software/kafka_2.12-1.1.0/ ``` **步骤2:配置修改** 进入`/opt/software/kafka_2.12-1.1.0/config`目录,找到`server.properties`...
- **数据持久性**:Kafka通过高效的磁盘数据结构来实现消息的持久化存储,即使面对大量数据也能保持高性能。 - **高吞吐量**:即便是普通硬件配置下,Kafka也能支持每秒数百万条消息的处理能力。 - **灵活的消息分发...
赠送jar包:kafka-clients-2.0.1.jar; 赠送原API文档:kafka-clients-2.0.1-javadoc.jar; 赠送源代码:kafka-clients-2.0.1-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Kafka使用了一种高效的文件组织结构来存储消息,以实现高性能的读写操作。 **1. 顺序读写**:Kafka将消息按顺序追加到文件末尾,利用磁盘顺序读写的高效性。 2. **零拷贝**:通过映射文件到内存,避免了数据从内核...
赠送jar包:kafka-clients-2.4.1.jar; 赠送原API文档:kafka-clients-2.4.1-javadoc.jar; 赠送源代码:kafka-clients-2.4.1-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
1. **日志存储**:Kafka将消息持久化到磁盘,形成一种类似于日志的结构,这样即使服务器宕机,数据也不会丢失。每条消息都有一个唯一的序列号,确保消息的顺序。 2. **批量发送**:生产者可以批量发送消息,减少...
- **Topology**:Kafka Streams的处理逻辑由拓扑结构定义,包括源节点(Source)、处理节点(Processor)和sink节点(Sink),它们通过流连接形成数据处理管道。 - **Stateful Processing**:Kafka Streams支持...
`RequestHeader`和`ResponseHeader`定义了请求和响应的结构。 四、元数据管理 1. **元数据获取**:`Metadata`类维护了Kafka集群的元数据信息,包括 broker、topic、partition等。`MetadataRequest`用于向broker...