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的數量