版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Fundamental Concept in the Kafka
Kafka——分布式发布\订阅消息系统 和 队列,适用于大规模消息处理。
Kafka——分布式、分区、有副本、容错;无需停机;具备分布式提交日志;高吞吐量
Terms Of Kafka
- topics:kafka消息通过主题分类,主题可分成若干分区,整个主体范围内的消息顺序无法保证,单个分区内顺序可以。一个主题可跨服务器。
- partitions: 一个分区就是一个提交日志,消息追加写入分区,读取时以先进先出的方式进行。每个分区只能被一个消费者使用。
- producers:消息会被发布在特定主题,生产者默认将消息均衡发布在主题的所有分区【某些情况,会写在指定分区】。
- consumers:消费者订阅一或多个主题,按消息生成顺序读取,通过消息的offset区分读取的消息。
- broker:broker是一个独立的kafka服务器。
安装(Linux环境)
- zookeeper安装
-
选择安装3.5.5版本,官网提示该版本是3.5分支的第一个稳定版本,建议生产环境使用
-
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/
tar -vxf apache-zookeeper-3.5.5-bin.tar.gz
mv apache-zookeeper-3.5.5-bin.tar.gz /usr/local/zookeeper-3.5.5
-
单机环境
-1.cp /usr/local/zookeeper-3.5.5/conf/zoo_sample.cfg /usr/local/zookeeper-3.5.5/conf/zoo.cfg
-2.配置数据目录以及客户端端口
-
启动zookeeper
-1.cd /usr/local/zookeeper-3.5.5/bin
-2.
./zkServer.sh --config=/usr/local/zookeeper-3.5.5/conf/zoo.cfg start
2.kafka安装
- https://kafka.apache.org/downloads#2.3.0
- 选择下载Scala 2.12版本的 【不要问我为什么,官方建议
tar -vxf kafka_2.12-2.3.0.tgz
[zyt@localhost ~]$ sudo mv kafka_2.12-2.3.0 /usr/local/
- 可直接创建 /tmp/kafka-logs,用来存放事务日志,也可另创并更改server.properise文件中的log.dirs项
- 启动kafka:
[zyt@localhost bin]$ ./kafka-server-start.sh -daemon ../config/server.properties
- 验证Kafka安装是否正确
- 创建一个主题,发布消息,并读取
——以上命令创建了一个test主题,分区为1 ,副本为1
验证该主题创建成功 - 在该主题上发布消息,并在该主题上读取消息