kafka介绍

设计原理

kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力。

这就需要kafka具有以下特性:

1)高吞吐量,低延迟

每秒处理消息的数。我们希望消息引擎的吞吐量越大越好。

延迟:客户端发起请求与服务端处理请求并发送响应给客户端之间的这一段时间。

顺序读写

零拷贝:在Linux kernel2.2
之后出现了一种叫做"零拷贝(zero-copy)"系统调用机制,就是跳过“用户缓冲区”的拷贝,建立一个磁盘空间和内存的直接映射,数据不再复制到“用户态缓冲区”。

分区:

kafka中的topic中的内容可以被分为多分partition存在,每个partition又分为多个段segment,所以每次操作都是针对一小部分做操作,很轻便,并且增加并行操作的能力

批量发送:

kafka允许进行批量发送消息,producter发送消息的时候,可以将消息缓存在本地,等到了固定条件发送到kafka。等消息条数到固定条数
,一段时间发送一次。

数据压缩:
Kafka还支持对消息集合进行压缩,Producer可以通过GZIP或Snappy格式对消息集合进行压缩
压缩的好处就是减少传输的数据量,减轻对网络传输的压力

2)消息持久化

解耦消息发送与消息消费

实现灵活的消息处理: 已经处理过的消息在未来的某个时间需要重新处理。

  1. 负载均衡和故障转移

Kafka提供了智能的leader选举算法,可以在集群的所有机器上以均等的机会分散各个partition的leader,从而整体上实现了负载均衡。

当服务器意外终止时,整个集群可以快速检测到,并立即将该服务器上的应用或服务转移到其他服务器上。Kafka启动后每个节点会议会话的形式将自己注册到zookeeper服务器上。一旦服务出现问题,则会话超时,集群会选举出另一台服务器来代替他的工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值