kafka

1.kafaka高产出的分布式消息系统。(A high-throughput distributed messaging system)

2.它是一个典型的分布式的基于push-subscribe的消息系统,它具备快速、可扩展、可持久化的特点。

什么叫push-subscribe消息系统:用户可以为服务器日志或者物联网设备创建不同主题(Topic) ,之后数据可以源源不断地发送到各个主题,后端数据仓库、流式分析或者全文检索等对接特定主题,服务器或者物联网设备是无需关心的。

3.Kafka的做法是提供消息队列,让生产者单往队列的末尾添加数据,让多个消费者从队列里面依次读取数据然后自行处理。

4.特性

高吞吐量、低延迟: kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒

可扩展性: kafka集群 支持热扩展

持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)

高并发:支持数千个客户端同时读写

5.分区

每个分区都由一系列有序的、不可变的消息组成,这些消息被连续的追加到分区中。

分区中的每个消息都有一个连续的序列号叫做offset,用来在分区中唯一的标识这个消息。

在一个可配置的时间段内,Kafka集群保留所有发布的消息,不管这些消息有没有被消费。比如,如果消息的保存策略被设置为2天,那么在一个消息被发布的两天时间内,它都是可以被消费的。之后它将被丢弃以释放空间。Kafka的性能是和数据量无关的常量级的,所以保留太多的数据并不是问题。

实际上每个consumer唯一需要维护的数据是消息在日志中的位置,也就是offset.这个offset由consumer来维护

6.Kafka将消息以topic为单位进行归纳。

向Kafka topic发布消息的程序成为producers.

将预订topics并消费消息的程序成为consumer.

Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.

producers通过网络将消息发送到Kafka集群,集群向消费者提供消息

客户端和服务端通过TCP协议通信。

7.Producer将消息发布到它指定的topic中,并负责决定发布到哪个分区。

8.发布消息通常有两种模式:

队列模式(queuing) 和发布-订阅模式(publish-subscribe)。

队列模式中,consumers可以同时从服务端读取消息,每个消息只被其中一个consumer读到;

发布-订阅模式中消息被广播到所有的consumer中。Consumers可以加入一个consumer 组,共同竞争一个topic, topic中的消息将被分发到组中的一个成员中。

9.注意consumer组的数量不能多于分区的数量,也就是有多少分区就允许多少并发消费。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值