安装(基本版本)
安装zookeeper
默认会占用8080端口,需要把默认端口修改掉
安装kafka
kafka的配置文件截图
常用命令
注意:
bat结尾的是windows的命令
sh结尾的是linux命令
名称 | 命令 |
启动zookeeper | |
启动kafka | bin\windows\kafka-server-start.bat config\server.properties nohup /data/kafka/kafka/bin/kafka-server-start.sh /data/kafka/kafka/config/server.properties & |
查看主题列表 | bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --list bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list |
创建主题 | bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --create --topic aa --partitions 1 bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --create --topic aa --partitions 1 |
描述主题 | bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --describe --topic "to-platform-msg" bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --describe --topic "aa" |
删除主题 | bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --delete --topic to-platfrom-msg |
启动消费者 | bin\windows\kafka-console-consumer.bat --bootstrap-server 127.0.0.1:9092 --topic aa --from-beginning bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic aa --from-beginning |
启动生产者 | bin\windows\kafka-console-producer.bat --bootstrap-server 127.0.0.1:9092 --topic aa bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic aa |
安装(开启SASL)
参照网址:kafka 开启认证授权_kafka开启认证-CSDN博客
zookeeper:配置文件:
zoo.cfg核心配置文件
用户名和密码的文件;
启动脚本修改如下:
kafka相关的配置文件:
server.properties:
启动脚本:
查看主题创建主题的配置文件如下图
安装后的效果图:
相关命令:
要注意正文中的用户名和密码
-- 查看主题
bin/kafka-topics.sh --bootstrap-server 192.168.56.101:9092 --list --command-config /data/kafka/kafka/config/common_config
-- 创建主题
bin/kafka-topics.sh --bootstrap-server 192.168.56.101:9092 --create --topic comtopic --partitions 1 --command-config /data/kafka/kafka/config/common_config
-- 描述主题
bin/kafka-topics.sh --bootstrap-server 192.168.56.101:9092 --describe --topic "comtopic" --command-config /data/kafka/kafka/config/common_config
-- 创建生产者
bin/kafka-console-producer.sh --bootstrap-server 192.168.56.101:9092 --topic comtopic \
--producer-property "sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='Test2024@';" \
--producer-property security.protocol=SASL_PLAINTEXT \
--producer-property sasl.mechanism=PLAIN
-- 创建消费者
bin/kafka-console-consumer.sh --bootstrap-server 192.168.56.101:9092 --topic comtopic --from-beginning \
--consumer-property "sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='Test2024@';" \
--consumer-property security.protocol=SASL_PLAINTEXT \
--consumer-property sasl.mechanism=PLAIN
整个打包文件下载地址:https://www.alipan.com/t/ZZtnilN0SY7Lfmk3rDlS
Java代码kafka的相关配置;
java代码
package xxx.config;
import com.alibaba.fastjson.JSON;
import com.tiamaes.cloud.kafka.Factory;
import lombok.extern.log4j.Log4j2;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.support.Acknowledgment;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* kafka消费端监听
*
*/
@Component
@Log4j2
public class KafkaConsumerListener {
/**
* 批量消费
*
* @param resolved resolved
* @param ack ack
*/
@KafkaListener(topics = {"comtopic"}, containerFactory = Factory.BATCH)
public void listener(@Payload List<ConsumerRecord<String, String>> resolved, Acknowledgment ack) {
log.info("Received resolve22d: " + resolved);
log.info("Received ack: " + JSON.toJSON(ack));
for (ConsumerRecord<String, String> record : resolved) {
String topic = record.topic();
log.info("===消费者读取topic消息===" + topic);
log.info("===消费者读取全量消息===" + record.value());
log.info("===消费者读取全量消息===" + record);
ack.acknowledge();
}
}
}
springboot配置文件
# kafka相关配置
kafka:
enable: true
bootstrap-servers: 192.168.252.37:9094
consumer:
groupId: ${spring.application.name}-${m1.instance-id}
max-poll-records: 100
enable-auto-commit: false
listener:
ack-mode: manual-immediate
missing-topics-fatal: false
properties:
security:
protocol: SASL_PLAINTEXT
sasl:
mechanism: PLAIN
jaas:
config: org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='Test2024@';
可视化工具
offsetexplorer
offsetexplorer:Offset Explorer
SASL的相关配置:
上图中的配置:
org.apache.kafka.common.security.plain.PlainLoginModule required
username='admin'
password='Test2024@';