Kafka是一個分佈式流處理平臺,咱們能夠初步理解爲一個Kafka就是一個存儲消息的籃子(broker),能夠實時去放消息或取消息,不一樣的消息按照不一樣的標籤(topics)分類,這個籃子是可擴展的(Kafka集羣),籃子裏的消息高可靠不會丟失。node
producer:多個應用向Kafka集羣的一個或多個topic推送一條數據流
consumer:多個應用根據需求訂閱指定的topic流
stream:處理訂閱的topic流,並依據結果向cluster集羣推送一條新的topic流
connector:與關係型數據庫相連,能夠捕捉到每次數據庫中表的變化數據庫
*Kafka的partition(分區)和replica(副本)區別:一個topic能夠指定多個partition,當咱們往指定topic存放一條消息(由key-value構成)時會根據消息key的哈希值將其分配在指定的分區上。而replica就是topic內數據的副本數,保證消息不會丟失。架構
1.Kafka是依賴於ZooKeeper(提供集羣的配置管理包括集羣名字服務、集羣配置服務、分佈式鎖等)的,所以咱們須要先啓動ZooKeeper,如何啓動見官網,也很簡單。
2.修改Kafka配置文件conf/server.properties,基本配置包括brokerId這個在集羣中是惟一的,運行的主機ip以及端口號,log生成目錄,zookeeper運行端口。socket
3.啓動Kafka kafka-server.sh server.properties分佈式
# The id of the broker. This must be set to a unique integer for each broker. broker.id=0 # The port the socket server listens on port=9092 # Hostname the broker will bind to. If not set, the server will bind to all interfaces host.name=localhost # A comma seperated list of directories under which to store log files log.dirs=/root/tmp/kafka-logs # root directory for all kafka znodes. zookeeper.connect=localhost:2181