消息队列MQ

14) 21.11.29 浅谈 Kafka了解

本文主要是介绍14) 21.11.29 浅谈 Kafka了解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.认识Kafka
Kafka对消息保存时依据Topic进行归类,发送消息成为Producer,消息接受者成为Consumer,此外Kafka集群有多个Kafka实例组成,每个实例(server)称为broker. 低版本之前集群,con和pro都依赖zk保证系统可用性,为集群保存meta信息。
2.概念
1).Kafka作为一个集群运行在一个或者多个服务器上
2).Kafka通过topic对存储的流数据进行分类
3).每条记录包含一个key,value,timestamp
3.Topics和Logs
1)可以用来区分业务系统,一个topic可以用于一个或者多个消费者来订阅他的消息,每一个topic,都会有一个log分区日志,与topic相关的还有个叫partion,可以认为是队列,顺序消费,队尾插入,消息到哪个位置这个信息由zk存储。
2)与logs相关的有distribution
log的分区被分布到集群的多个服务器,每个服务器处理分到的分区,每个分区还有备份在别的服务器,(旨在解决,一个服务器崩了,消息不会丢失的情况)每个分区都会有一个leader,零个或者多个follwer,如果leader宕机,zk会选举另一台服务器的follwer为leader,一台服务器可以是一个分区的leader也可以是另一个分区的follwer,这样可以平衡负载。
4.Producer
生产者往某个Topic上发布信息,生产者也负责选择发布到哪一个分区,最简单的是轮询分区,也可根据算法根据权重选择
5.Consumer
消费者通过一个消费组名称来负责标识,发布到topic的每条记录 被分配到订阅消息的某一个实例,消费者实例可以分配到多个机器。
1)如果所有消费者实例在同一消费组,消费记录会负载平衡到每一个消费实例
2)如果所有的消费实例在不同消费组,每条消费记录会广播到所有消费者进程
6.Replication
每个Partion会被复制到其他服务器作为Replication,作为冗余备份的策略
1)partion的多个Replication不能在同一个服务器上
2)至少一个leader,零个或者多个follwer
3)leader处理分区(Broker)的读写请求,follwer被动的复制数据
4)leader宕机选举follwer
7.四个核心的API
1)Producer API
允许一个应用程序发布一串流式数据到一个或者多个Kafka topic
2)Consumer API
允许一个程序订阅一个或者多个topic,并对发布给他们的流式数据进行处理
3)Stream API
允许一个应用程序作为一个流处理器,消费一个或者多个topic产生的输入流,然后生产一个输出流到一个或者多个topic去,在输入输出流中进行有效的转换
4)Connector API
允许构建并运行可重用的生产者或者消费者,连接kafka到应用程序,例如数据库,捕捉table所有的变更内容
8.
备份保证分布式可靠性,防止一个Broker宕机造成分区的数据不可用

这篇关于14) 21.11.29 浅谈 Kafka了解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!