kafka入门+集群搭建

19 篇文章 1 订阅
6 篇文章 0 订阅

什么是kafka
kafka是分布式消息和订阅系统 特点:高性能和高吞吐量(每秒处理几十万条消息);基于scala实现。
内置分区,实现集群、容错能力和消息复制能力。
应用场景:行为跟踪、日志收集
在这里插入图片描述
kafka架构

在这里插入图片描述
和activemq不同:activemq 是broker主动推送消息到消费端, kafka是消费端主动pull消息

Topic :主题 kafka中没有queue 的概念 所有的消息都是通过主题来传递
partition:分区
group:分组

kafka安装
1、下载安装文件 ,将安装文件复制到服务上 并解压。

root@192 kafka]# tar -zvxf kafka_2.12-2.1.0.tgz 

2、到 config目录下 修改配置文件中 zookeeper 的地址
vi server.properties

zookeeper.connect=localhost:2181

如果自己没有zookeeper环境 kafka自己集成了一个 zookeeper
直接通过 bin下 zookeeper-server-start.sh 启动即可
root@192 bin]# ./zookeeper-server-start.sh …/config/zookeeper.properties

3、启动kafka
bin/kafka-server-start.sh …/config/server.properties

4、停止kafka
bin/kafka-server-stop.sh …/config/server.properties
5、后台运行方式启动 kafka
bin/kafka-server-start.sh -daemon …/config/server.properties

通过命令发送接收消息
1、创建topic
[root@192 bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic “test”.
2、查看 topic
[root@192 bin]# ./kafka-topics.sh --list --zookeeper localhost:2181
test
[root@192 bin]#
3、查看topic属性

[root@192 bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
[root@192 bin]#

4、发送消息
运行 ./kafka-console-producer.sh --broker-list localhost:9092 --topic test 启动消息发送。
在这里插入图片描述

5、消费消息
运行 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning 启动一个 消息接收窗口 当有消息时就可以接收到
在这里插入图片描述
6、查看每个消费组对消息的消费情况

[root@com kafka]#  bin/kafka-consumer-groups.sh --bootstrap-server X.X.X.X:9092   --describe --group Groupname
TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                           HOST            CLIENT-ID
topic1      0          130             130             0                cli-0

7、修改topic副本数 和分区数
分区数执行下列命令即可

[root@localhost kafka]# bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic zxmtest --partitions 3

[root@localhost kafka]# bin/kafka-topics.sh  --describe --topic zxmtest --zookeeper localhost:2181
Topic:zxmtest   PartitionCount:3        ReplicationFactor:1     Configs:
        Topic: zxmtest  Partition: 0    Leader: 0       Replicas: 0     Isr: 0
        Topic: zxmtest  Partition: 1    Leader: 0       Replicas: 0     Isr: 0
        Topic: zxmtest  Partition: 2    Leader: 0       Replicas: 0     Isr: 0

修改副本数略微复杂,编辑一个配置文件如下:

[root@localhost kafka]# cat set_topic_rep2.json 
{
    "version":1,
    "partitions":[
        {
            "topic":"zxmtest",
            "partition":0,
            "replicas":[
                0,2
            ]
        },
        {
            "topic":"zxmtest",
            "partition":1,
            "replicas":[
                1,2
            ]
        },
        {
            "topic":"zxmtest",
            "partition":2,
            "replicas":[
                0,1   //副本分布,必须是存在的节点,
            ]
        }
    ]
}

执行如下命令即可
bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file set_topic_rep2.json --execute

最好配置默认副本及分区数量

自动创建主题 auto.create.topics.enable=true 
默认主题的分区数 num.partitions=8 
默认分区副本 default.replication.factor=3 

集群搭建
1、程序在三台机器安装 修改配置文件erver.properties中以下三部分
1)、 zookeeper 配置 (我这里统一使用 192.168.159.10)
2)、修改 broker.id (同一集群中不能重复)
3)、listeners plaintext://本机ip(不能是localhost):port(当 Kafka broker 启动时,它会在 ZK 上注册自己的 IP 和端口号,客户端就通过
这个 IP 和端口号来连接)
然后三台服务器都启动服务即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

catch that elf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值