中间件kafka

* kafka----一个发布订阅消息系统,中间件;一个分布式、分区、可重复的日志服务
kafka需要了解基础几层结构,生产者订阅者等使用方法,和在高并发、一致性场景使用。
(凡事面试问一致性、高并发都脱离不了消息队列和事务)。

1.常用消息队列框架中间件Kafka
2.基础结构
producer:往kafka发消息的客户端
Consumer:从kafka读消息的客户端
Topic:一个队列
Consumer Group:消费群,发送消息时可以实现广播;可以将一个topic发给多个consumer。
Broker (B):一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
Partition(P):为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上。
partition保证consumer发送Broker消息的顺序。
2.为什么要分区
可以将日志内容分布在多个服务器上,每个Server都可以保存partition,将topic切分成partition越多保存效率越高
而partition越多意味着容纳consumer越多,有效提升并发消费的能力。
3.高并发一致性场景下的使用
kafka能够保证数据一致性,原因在于,kafka由consumer自己保存当前发送状态,不需要和其他确认。这样会很灵活,能够保证如果需要重新处理消息,可以再从broker获得。
为提高性能,kafka的producer有一种异步发送的操作。producer先将消息放在内存中。

4.kafaka与zookeeper
zookeeper是一种开源、高性能协调应用。用于使kafka实现分布式
主要体现在通过kafka不同集群之间的通信,broker和consumer之间利用zookeeper进行负载均衡。

原文地址:https://www.cnblogs.com/SutCoderHang/p/9703431.html