Kafka基本概念

是一个分布式、可分区、可复制的消息系统,主要用于处理活跃的流式数据。

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

Kafka中的zookeeper的用途
正如zookeeper用于分布式系统的协调和促进,Kafka使用也是基于这一原因,zookeeper用户管理、协调Kafka代理

基本特性
可扩展      在不需要下线的情况下可以进行扩容;数据流分区(partition)存储在多台机器上
高性能      单个broker就能服务上千个客户端;单个broker每秒钟可读写每秒几百兆字节;多个brokers组成的集群将达到非常强的吞吐能力;性能稳定,无论数据量多大
持久存储   存储在磁盘上;冗余备份到其他服务器上以防数据丢失

消息格式
一个topic对应一种消息格式,因此消息用topic分类
一个topic代表的消息有一个或者多个partition(s)组成
一个partition中
  *一个partition应存放在一到多个server上
        。如果只有一个server,就没有冗余备份,是单机而不是集群
        。如果有多个server
                . 一个server为leader
                . 其他server为follows
                .leader需要接收读写请求
                .follows仅作冗余备份
                .leader出现故障,会自动选举一个follow作为leader,保证服务不中断
                .每个server都可能扮演一些partitions的leader和其他partitions的follow角色,这样整个集群就会达到负载均衡的状态
  *消息按顺序存放
  *消息顺序不可变
  *只能追加消息,不能插入
  *每个消息都有一个offset,用作消息ID,在一个partition中唯一
   *offset由consumer保存和管理,因此读取顺序实际上是完全由consumer决定的,不一定是线性的
  *消息有超时日期,过期则删除

生产者 producer
  *生产者将消息写入kafka
  *写入要制定topic和partition
  *消息如何分发到不同的partition,算法由producer决定

消费者 consumer
  *读取消息并作处理
  *consumer group
    - 这个概念的引入为了支持两种场景:每条消息分发一个消费者,每条消息广播给所有消费者
    - 多个consumer group订阅一个topic,该topci的消息广播给所有consumer group
    - 一条消息发送到一个consumer group后,只能由该group的一个consumer接收和使用
    -  一个group中的每个consumer对应一个partition可以带来如下好处
                  @可以按照partition的数目进行并发处理
                  @ 每个partition都只有一个consumer读取,因而保证了消息被处理的顺序是按照partition的存放顺序进行,注意这个顺序受到producer存放消息的算法影响

kafka是分布式架构,producer、broker(Kafka)和consumer都可以有多个。Kafka的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。几个基本概念:

(1)message(消息)是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。如果consumer订阅了这个主题,那么新发布的消息就会广播给这些consumer。

(2)Kafka是显式分布式的,多个producer、consumer和broker可以运行在一个大的集群上,作为一个逻辑整体对外提供服务。对于consumer,多个consumer可以组成一个group,这个message只能传输给某个group中的某一个consumer.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值