• You辉编程_kafka


    一、什么是kafka?

    是分布式(项目部署于多个服务器)的基于发布/订阅模式的消息队列,主要用于处理活跃的数据,如:登录、浏览、点击、分享等用户行为产生的数据,说白了就是一个消息系统(消息队列)。

    进一步理解:

    1.消息队列

    消息(Message):网络中的两台计算机或者两个通讯设备之间传递的数据,如:文本、音频等。

    队列(Queue):直接把它想象成羽毛球筒,羽毛球先进先出,是一种特殊的线性表,特殊之处在于,只能在头部删除元素,在尾部添加元素。

    消息队列(MQ):保存消息的队列,相当于消息传输过程中的一个容器,主要有两个作用,一个是给外部提供存入消息的接口,另一个是提供取出消息的接口。

    保存消息的队列,是消息在传输过程中的容器。主要提供生产和消费接口供外部调用,进行数据的存储和获取。

    二、MQ的分类

    1.主要有两大类:点对点(Peer-to-Peer)、发布/订阅(Publish/Subsribe)。

    2.共同点:生产消息发送到队列中,消费者从队列中读取并消费消息。

    3.不同点:

    (1)点对点

    组成:消息队列、发送者(Sender)、接受者(Receiver)。

    注:一个生产者生产的消息只能有一个消费者消费,一旦被消费了,消息就不会存在于消息队列中。

    (2)发布/订阅

    组成:消息队列、发布者(Publisher)、订阅者(Subscriber)、主题(Topic)

    注:每个消息可以有多个消费者,彼此互不影响,如:我在微信公共号发了一篇文章,关注我的人都能看到,即消息被多个人接受到(订阅者)。

    三、常见的消息系统

    ActiveMQ:实现了JMS(Java Message Service)规范,支持性较好,性能相对不高。

    RabbitMQ:可靠性高、安全。

    Kafka:分布式、高性能、跨语言。

    RockeMQ:阿里开源的消息中间件,纯Java实现。

    四、kafka特性

    1.高吞吐量、低延迟:每秒可以处理几十万条消息,其延迟只有几毫秒,每个主题可以分多个分区,消费组对其分区进行消费。

    2.可扩展:集群支持热扩展。

    3.持久性、可靠性:可以持久化到本地磁盘,支持数据备份防止数据丢失。

    4.容错性:允许节点中节点失败。

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

    五、kafka的组成

    1.Broder:kafka集群中包含多个kafka服务节点,每个kafka服务节点就是一个broker。

    2.Topic:主题(相当于消息的类型),用来存储不同类别的消息(kafka消息数据村存放于硬盘)。

    3.Partition:分区,每个Topic可以包含一个或多个分区,分区的数据量是在创建主题时决定的,

    目的在于进行分布式存储

    4.Replication:副本,每个分区可以有多个副本,分布在不同的Broker上,会选出一个副本呢作为Leader,所有请求都会通过Lea

  • 相关阅读:
    结合瑞幸的私域运营 盘点那些错误的私域营销方式
    【漏洞分析】KaoyaSwap 安全事件分析
    LeetCode(力扣)90. 子集 IIPython
    Python3-excel文档操作(二):利用openpyxl库处理excel表格:在excel表格中插入图片
    使用pgAdmin创建ERD
    【图解HTTP】HTTP请求报文和响应报文
    Filebeat+Kafka+ELK日志分析架构
    deb文件安装
    做SEO排名优化多久会有效果?实例分析!
    iNFTnews|Web3正在重新定义粉丝的意义
  • 原文地址:https://blog.csdn.net/weixin_53781798/article/details/127776735