Kafka 单机部署

Kafka可以当作队列使用,这里记录一下单机环境下,简单的部署过程。


准备环境

  1. 下载

  1. 解压到
/opt/apache/home/kafka_2.11-1.0.0

  1. 设置环境变量
# Kafka
export KAFKA_HOME=/opt/apache/home/kafka_2.11-1.0.0
export KAFKA_LOG_DIR=/opt/apache/logs/kafka

  1. 编辑配置文件
$KAFKA_HOME/config/server.properties


# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
# 每个节点不同数字

# A comma seperated list of directories under which to store log files
log.dirs=/opt/apache/logs/kafka

# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = security_protocol://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners = PLAINTEXT://:9092


# The default number of log partitions per topic. More partitions allow greater
# parallelism for consumption, but this will also result in more files across
# the brokers.
num.partitions=2

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=localhost:2181


启动

[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# bin/kafka-server-start.sh -daemon config/server.properties
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#

查看端口9092是否监听
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# netstat -an | grep 9092
tcp        0      0 0.0.0.0:9092            0.0.0.0:*               LISTEN     
tcp        0      0 192.168.145.240:9092    192.168.145.240:45762   ESTABLISHED
tcp        0      0 192.168.145.240:45762   192.168.145.240:9092    ESTABLISHED

查看端口topic、并创建
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# bin/kafka-topics.sh --zookeeper localhost:2181 --topic test-topic1 --replication-factor 1 --partitions 1 --create
Created topic "test-topic1".
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
test-topic1
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test-topic1
Topic:test-topic1    PartitionCount:1    ReplicationFactor:1    Configs:
    Topic: test-topic1    Partition: 0    Leader: 1    Replicas: 1    Isr: 1



测试

生产消息:
[root@izwz94kk4bpmj71fa7immvz ~]# /opt/apache/home/kafka_2.11-1.0.0/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-demo
>No.1 abaaaaaaaaaaaaaaaaaaaaaaaaaaaa
>No.2 ddddddddddddddddddddddddddddddd
>No.3 sssssssssssssssssssssssssssssss
>^C[root@izwz94kk4bpmj71fa7immvz ~]#
[root@izwz94kk4bpmj71fa7immvz ~]# /opt/apache/home/kafka_2.11-1.0.0/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-demo
>aaaaaaaaaaaaaaaaaaaaaaaa
>^C[root@izwz94kk4bpmj71fa7immvz ~]#

消费消息:
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]# /opt/apache/home/kafka_2.11-1.0.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-demo --from-beginning
[2018-01-16 14:43:46,914] WARN [Consumer clientId=consumer-1, groupId=console-consumer-15592] Error while fetching metadata with correlation id 2 : {test-demo=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
[2018-01-16 14:43:47,039] WARN [Consumer clientId=consumer-1, groupId=console-consumer-15592] Error while fetching metadata with correlation id 4 : {test-demo=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
No.1 abaaaaaaaaaaaaaaaaaaaaaaaaaaaa
No.2 ddddddddddddddddddddddddddddddd
No.3 sssssssssssssssssssssssssssssss
aaaaaaaaaaaaaaaaaaaaaaaa
^CProcessed a total of 4 messages
[root@izwz94kk4bpmj71fa7immvz kafka_2.11-1.0.0]#


搞定。


### Kafka 单机部署指南 (KRaft 模式) #### 准备工作 为了在单机环境中成功安装并运行基于 KRaft 模式的 Apache Kafka,需先下载对应版本的 Kafka 安装包。确保已正确解压至目标位置。 #### 修改配置文件 编辑 `config/kraft/server.properties` 文件以适应单节点环境的需求: ```properties node.id=1 controller.quorum.voters=1@localhost:9093 advertised.listeners=PLAINTEXT://localhost:9092 log.dirs=/tmp/kraft-combined-logs ``` 以上设置指定了唯一的节点 ID 和控制器投票者列表,在本例中仅有一个实例参与;同时定义了外部访问所需的监听地址以及日志存储的位置[^2]。 #### 初始化元数据 利用 `kafka-storage.sh` 命令行工具初始化本地磁盘上的元数据分区结构,并指定要使用的最高支持元数据版本号: ```bash bin/kafka-storage.sh format -t <cluster_id> -c $KAFKA_HOME/config/kraft/server.properties ``` 这里 `<cluster_id>` 应替换为实际生成或自定义的一个字符串标识符,而 `$KAFKA_HOME` 则指向 Kafka 的根目录所在路径[^4]。 #### 启动服务 通过如下命令启动 Kafka Broker 进程: ```bash bin/kafka-server-start.sh config/kraft/server.properties & ``` 这一步骤将会激活之前所配置的各项参数,并使 Kafka 实例处于待命状态准备接收生产者的写入请求或是消费者的读取操作[^3]。 #### 测试连接性 可以创建测试主题并通过控制台消费者验证整个流程是否正常运作: ```bash # 创建名为 'test' 的新主题 bin/kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092 # 使用控制台生产者发送消息到该主题 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test # 开启另一个终端窗口作为消费者来查看接收到的消息 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test ``` 上述指令展示了如何建立简单的发布/订阅机制用于初步的功能检验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值