kafka

kafka:
安装这些都在网上,记得最新的springboot要使用最新的kafka,不然springboot自带的kafka会因为版本的原因发送不了消息

若只是简单的topic发送消息,消费者接收消息,则不需要使用kafka分区,。
也不需要初始化topic,直接书写kafkaTemplate.send("topic1", normalMessage)发送消息,这种情况就没有把该topic进行分区

zookeeper的启动命令
zkServer.sh start
zkServer.sh status
zkServer.sh restart


若是需要分区这种topic,就需要初始化topic。

两种方式:   注意:分区与线程数建议保持一致,这样不会漏掉,也不会多余
        (1)第一种就在liunx服务器上面进行
            ./kafka-topics.sh --create --zookeeper 172.17.80.219:2181 --replication-factor 2 --partitions 2 --topic topic1    这是创建主题为topic1,默认分区为2,分区副本也是2
        (2)在java代码里面初始化,创建一个初始化的类@Configuration,注入@Bean   有一个类叫:NewTopic ,这个类有构造方法入参:topic名称、分区数、分区副本数
            return new NewTop("do_1",8,(short)2)      创建一个do_1的topic,分区为8,分区副本为2
            
            还可以修改topic的默认分区,只需要再注入同一个topic,相当于修改。然后重启一下项目就可以了。
            注意:修改的时候,topic分区只能增,不能减,不然会导致数据流失。
            
            
为什么要分区:分区能够减缓数据接收压力,采取轮询的模式,让每台服务器都能接收到数据。


分组:Kafka可以将消息复制并分发给所有consumer group(分组),但每个分组只有一个 consumer(消费者)能消费这条消息。
        所以就出现了两种状况:
                            当所有consumer所在的consumer group名字相同时,系统变成队列模式。
                            当所有consumer所在的consumer group名字不同时,系统变成发布/订阅模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值