zoukankan      html  css  js  c++  java
  • kafka学习总结之kafka简介

    kafka是一个分布式,基于subscribe-publish的消息系统

    特性:高吞吐量、低延迟、可扩展性、持久性(消息持久化到本地磁盘)、可靠性、容错性(n个副本,允许n-1个节点失败)、高并发(支持数千个客户端同时读写)

    设计思想:

    (1)       Consumer group:多个consumer可以组成一个group(group-id区分),每个消息只能被组中的一个consumer消费,同时消费一个消息的consumer一定不在同一组;

    (2)       消息状态:kafka中,消息的状态被保存在consumer中,节点(broker)不关心什么消息被谁消费了,只保存偏移量(指向partition,即分区中下一个即将被消费的消息);

    (3)       消息的保存:消息会被持久化到本地磁盘中,而且可以(可配置)长期保存,以便consumer可以多次消费;

    (4)       批量发送:kafka支持以消息集合为单位进行批量发送,从而提高效率

    (5)       异步:producer只管向broker push消息,consumer只管从broker pull消息,这个过程是异步的,不存在谁等谁;

    (6)       集群:kafka集群中的broker地位相同,没有主从关系,可以随意增加或删除任何一个broker,kafka0.8.x通过metadataAPI进行负载均衡,kafka0.7.x主要靠zookeeper进行负载均衡;

    (7)       分区partition:kafka的broker支持消息分区,producer决定将消息发送到哪个分区,分区中消息的顺序即是producer发送的顺序,一个主题可以有多个分区。

    架构组件:

    topic:主题,kafka中发布订阅的对象

    producer:向topic发布消息的一端

    consumer:从topic订阅消息的一端

    broker:kafka的一个服务实例,即是一个kafka服务器

     

    图 1 kafka集群结构图

             topic和partition

             一个topic有多个partition,每个partition中的消息都是有序的,kafka的节点broker会维护一个消息的偏移(index)唯一确定一个消息

     

    图 2 topic和partition关系图

  • 相关阅读:
    邪恶改装2:用单片机实现一次简单的wifi密码欺骗
    TPYBoard自制微信远程智能温湿度计
    什么是私有网络
    DCHP是什么意思
    ipconfig 命令有什么作用
    什么是网关及网关作用
    什么叫路由
    kvm libvirt 虚拟机管理
    通过python-libvirt管理KVM虚拟机 源码
    通过python-libvirt管理KVM虚拟机 代码实现
  • 原文地址:https://www.cnblogs.com/songxh-scse/p/6692317.html
Copyright © 2011-2022 走看看