kafka 用途
业务中我们经常用来两个方面
1.发送消息
2.发送日志记录
kafka 结构组成
broker:可以理解成一个单独的服务器,所有的东西都归属到broker中
partation:为了增加并发度而做的拆分,相当于把broker拆分成不同的小块;
topic:消息发送的必要条件,把topic理解成插座板,消息内容理解成电。
group:消费者组,可以理解成电器,不同的电器,插座上可以也一直插很多电器,然后不同电器用电做不同的事。
kafka如何做到群发功能
消费者中可以指定消费者组,当我们把消息发送到指定的topic上时,不同的消费者组可以根据这个topic去拿到这个消息,所以我们可以:
指定多个消费者组,然后消费同一个topic;消费者组是电器,不同的电器,插座上可以也一直插很多电器,然后不同电器用电做不同的事。
kafka 如何让消息按照我给的顺序消费
patation:可以保证加进来的消息都是按照顺序来推送的,所以只需要能把消息发送到同一个partation上就行
那么kafka是如何保证发到哪个partation呢
1.指定partation
2.指定key,kafka内部根据key求hash,然后发送到kafka,相同的key就可以落在同一个kafka上
但是我们大多数情况下都是指定key,然后kafka内部去自动分配到不同的partation。
kafka 如何指定partation的数量
kafka的配置文件中conf/server.properties中,通过replication-factor可以指定partation的数量