第一种模式:
点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)
1.消息生产者生产消息发送给队列,然后消费者从队列中取出并且消费消息
2.消息被消费以后,queue中不再有存储,所有消息消费者不可能消费到已经被消费的消息
3.队列支持多个消费者,但对一个消息而言,只有一个消费者可以消费。
第二种模式:
发布订阅模式
1.消息生产者将消息发到topic,可以有多个topic.
2.同时有多个消息消费者订阅消费该消息,消费数据后不会被删除。
3.每个消费者相互独立,都可以消费到数据。
kafka中的一些名词:
主题:事件被组织持久的存储在主题中。kafka中的主题始终是多生产者和多订阅者:一个主题可以N个向其写入事件的生产者,以及订阅这些事件的N个消费者。主题中的事件可以根据需要随时读取雨传统的消息传递系统不同,事件被消费后不会被删除,相反,您可以通过每个主题的配置设置来定义kafka应该将你的事件保存多久,之后老的事件被丢弃。kafka适合长时间存储数据。
broker:主要功能就是持久化消息以及将消息队列中的消息从发送端传输到消费端。一个broker通常以服务器的形式出现,一台kafka服务器就是一个broker.一个集群由多个broker组成。一个broker可以容纳多个topic.如果kafka只有一个broker,就会出现单点故障。
一个分区只能被同一个消费这组中的消费者消费
启动
kafka-server-start.sh -daemon /opt/kafka/config/server.properties
生产者:kafka-console-producer.sh
消费者:kafka-console-consumer.sh
topic:kafka-topic.sh