KafKa搭建

本文档详细介绍了如何在三个节点上搭建Kafka集群,包括上传和解压Kafka压缩包,配置环境变量,修改server.properties文件设置broker.id和zookeeper.connect,以及启动zookeeper和kafka-broker。关键步骤包括确保每个节点的broker.id唯一,并在所有节点上正确分布和启动服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KafKa搭建

1.上传压缩包

在这里插入图片描述

2.解压,配置环境变量(master、node1、node2)
#解压
tar -xvf kafka_2.11-1.0.0.tgz -C /usr/local/soft/

在这里插入图片描述

#配置环境变量
vim /etc/profile
#追加以下内容
#kafka
export KAFKA_HOME=/usr/local/soft/kafka_2.11-1.0.0
export PATH=$KAFKA_HOME/bin:$PATH

#分发到node1、node2中
scp /etc/ node1:/etc/
scp /etc/ node2:/etc/

#三台节点中刷新
source /etc/profile

在这里插入图片描述

3.修改配置文件
#修改config/server.properties
    1、broker.id=0,每一个节点broker.id 要不一样
	2、zookeeper.connect=master:2181,node1:2181,node2:2181
	3、log.dirs=/usr/local/soft/kafka_2.11-1.0.0/data   消息存放的位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.分发到其它节点
scp -r kafka_2.11-1.0.0 node2:`pwd`
scp -r kafka_2.11-1.0.0 node1:`pwd`
5.修改每个节点中的broker.id master=0、node1=1、node2=2
node1

在这里插入图片描述

node2

在这里插入图片描述

6.启动
#启动前需要启动zookeeper(所有节点中启动)
zkServer.sh start

#查看状态
zkServer.sh status
#在每台节点中启动broker
kafka-server-start.sh -daemon  /usr/local/soft/kafka_2.11-1.0.0/config/server.properties

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### Java与Kafka集成环境配置 #### 准备工作 为了成功搭建Java与Kafka的集成开发环境,需先安装并启动Kafka服务器[^1]。这一步骤确保本地或远程环境中存在可用的Kafka服务。 对于Maven项目而言,在`pom.xml`文件中加入如下依赖来引入Kafka客户端库: ```xml <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.1.1</version> </dependency> ``` 此操作使得开发者能够在应用程序里轻松调用Kafka API进行消息发送和接收功能实现[^3]。 #### Kafka生产者示例代码 下面展示了一个简单的Kafka生产者的例子,用于向指定主题发布消息: ```java import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import java.util.Properties; public class SimpleProducer { public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); try (KafkaProducer<String, String> producer = new KafkaProducer<>(props)) { for (int i = 0; i < 10; ++i) { producer.send(new ProducerRecord<>("test-topic", Integer.toString(i), "message-" + i)); } } catch (Exception e) { System.err.println(e.getMessage()); } } } ``` 这段程序创建了一个到Kafka broker的连接,并连续发出十条记录至名为`test-topic`的主题上。 #### Kafka消费者示例代码 同样地,这里给出一段基本的Kafka消费者的样例代码片段,它可以从特定主题订阅数据流并打印出来: ```java import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import java.time.Duration; import java.util.Collections; import java.util.Properties; public class SimpleConsumer { public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "test-group"); props.put("enable.auto.commit", "true"); props.put("auto.commit.interval.ms", "1000"); props.put("session.timeout.ms", "30000"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); try (KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props)) { consumer.subscribe(Collections.singletonList("test-topic")); while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100)); for (var record : records) { System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value()); } } } catch (Exception e) { System.err.println(e.getMessage()); } } } ``` 上述脚本设置好必要的参数之后便进入无限循环监听模式等待新消息的到来,一旦接收到就会立即处理显示在控制台上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值