单机测试
创建主题
# 主题名为test
kafka-topics.sh \
--create \
--zookeeper hadoop001:2181 \
--replication-factory 1 \
--partitions 1 \
--topic test
验证主题
kafka-topics.sh \
--zookeeper hadoop001:2181 \
--describe \
--topic test
修改主题的分区
kafka-topics.sh \
--zookeeper hadoop001:2181 \
-alter \
--partition 2 \
--topic test
发布消息
kafka-console-producer.sh \
--broker-list hadoop001:9092 \
--topic test
读取消息
kafka-console-consumer.sh \
--zookeeper hadoop001:2181 \
--topic test
配置文件
参数 | 含义 |
---|---|
broker.id |
kafka 服务器称为 broker 唯一即可 |
port |
|
zookeeper.connect |
hostname:port/path hostname:Zookeeper服务器的ip地址 port:Zookeeper服务器提供给客户端的连接端口 /path:可选的Zookeeper路径,作为Kafka集群的chroot环境,即在Zookeeper中创建一个结点,推荐使用 |
安装 Kafka 集群
集群最大的好处是可以跨服务器进行负载均衡,其次可以使用复制功能来避免因单点故障造成的数据丢失。
需要多少台服务器
决定因素:
- 需要保存多少数据,例如 10 TB
- 单台服务器能够保存多少数据,例如 2 TB
- 复制系数是多少,至少为 2,相当于 10 TB $\times$ 2
- 集群处理请求的能力
构建集群
要把一个 broker 加入到 Kafka 集群中,只需要修改两个配置参数:
- 所有的 broker 都配置相同的
zookeeper.connect
- 每个 broker.id 是唯一的、互不相同