kafka目前查阅了许多资料,更多的人把kafka作为消息中间件使用。来实现解耦、削锋填谷等。
其实很简单,就是把相关的任务作为消息发送给kafka,然后以广播的形式发送到下游,由于任务是以消息发送,所以如果出现问题,就不会再需要到kafka的上游去处理,只需要到kafka中去处理消息任务即可。
生产者producer
消费者consumer
消费者组consumer group
broker
topic
partition
replica
leader
follower
---------------------------------------
1、Producer:生产者,向kafka broker中发送消息客户端
2、Consumer:消费者,向kafka broker中拉取消息客户端
3、Consumer Group:消费者组,由多个Consumer组成,消费者内每个消费者负责消费不同分区,一个分区只能由一个消费者进行消费,消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上一个订阅者
4、Broker:一台kafka服务器就是一个broker,一个集群由多个broker组成,一个broker可以容纳多个topic
5、Topic:理解为一个消息队列,生产者和消费者都是面对一个Topic
6、Partition:为了实现扩展性,每个partition时一个有序队列,partition是topic中存储数据和消费数据所使用的队列所在
7、Replica:副本,为了保证当前某个节点发生故障时,当前节点上的数据不会发生丢失,且kafka可以仍然继续执行,kafka提供了副本机制,一个Topic上的分区可以由多个副本存在,分区和副本质检的关系是leader和follower,
8、leader:每个分区多个副本的“主”,生产者生产数据的对象,以及消费组消费者消费的对象‘
9、follower:每个分区多个副本的“从”,实时从leader数据的同步,一旦leader发生故障,可以保证kafka可以继续提供服务,数据不会丢失,提供一个全新的leader