• 分布式消息队列之kafka


    什么是Kafka?
    Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。
    Kafka适合离线和在线消息消费。 Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。 Kafka构建在ZooKeeper同步服务之上。
    它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。

    Kafka的几个好处
    可靠性 - Kafka是分布式,分区,复制和容错的。
    可扩展性 - Kafka消息传递系统轻松缩放,无需停机。
    耐用性 - Kafka使用分布式提交日志,这意味着消息会尽可能快地保留在磁盘上,因此它是持久的。
    性能 - Kafka对于发布和订阅消息都具有高吞吐量。 即使存储了许多TB的消息,它也保持稳定的性能。
    Kafka非常快,并保证零停机和零数据丢失。

    Kafka源码中的Producer Record定义:
    1.ProducerRecord 含义: 发送给Kafka Broker的key/value 值对
    2.内部数据结构:
    -- Topic (名字)
    -- PartitionID ( 可选)
    -- Key[( 可选 )
    -- Value
    3.生产者记录(简称PR)的发送逻辑:
    1 )若指定Partition ID,则PR被发送至指定Partition
    2 )若未指定Partition ID,但指定了Key, PR会按照hasy(key)发送至对应Partition
    3 )若既未指定Partition ID也没指定Key,PR会按照round-robin模式发送到每个Partition
    4 )若同时指定了Partition ID和Key, PR只会发送到指定的Partition (Key不起作用,代码逻辑决定)
    4.生产者记录(PR)的实现:
    针对3,提供三种构造函数形参:
    -- ProducerRecord(topic, partition, key, value)
    -- ProducerRecord(topic, key, value)
    -- ProducerRecord(topic, value)

  • 相关阅读:
    Java学习的第二十八天
    Java学习的第二十七天
    第五章 作用域闭包
    第4章提升
    第3章函数作用域和块级作用域
    Vant中List列表下拉加载更多
    获取当前时间
    js比较两个时间的大小
    边框引起页面抖动
    计算两个数的百分比,保留两位小数
  • 原文地址:https://www.cnblogs.com/brain008/p/13403029.html
Copyright © 2020-2023  润新知