• 【Java Web】Kafka,构建TB级异步消息系统


    1. 阻塞队列

    • BlockingQueue
      • 解决线程通信的问题;
      • 阻塞方法:put从队列中存一个 , take 从队列中拿出一个
    • 生产者消费者模式
      • 生产者:产生数据的线程;
      • 消费者:使用数据的线程。
    • 实现类
      • ArrayBlockingQueue
      • LinkedBlockingQueue
      • ProrityBlockingQueueSynchronousQueueDelayQueue

    在这里插入图片描述

    • 阻塞队列充当了生产者(Thread-1)和消费者(Thread-2)之间的桥梁;
    • 若Blocking Queue满了,将阻塞生产者,线程1陷入等待;
    • 若Blocking Queue空了,将阻塞消费者,线程2陷入等待;
    • 因此,可以防止系统资源被浪费。

    2. Kafka入门

    • Kafka简介
      • kafka 是一个分布式的流媒体平台;
      • 应用:消息系统、日志收集、用户行为追踪、流式处理。
    • Kafka特点
      • 高吞吐量、消息持久化、高可靠性、高扩展性
    • Kafka术语
      • Broker(一个服务器)、Zookeeper(集群)
      • Topic(文件夹)、Partition(分区,提高容错率)、Offset(在分区中的位置)
      • Leader Replica(主副本,如果需要从分区获取数据,主副本可以响应)、Follower Replica(随从副本,备份)

    -卡夫卡能处理海量数据(高吞吐量),因为卡夫卡将数据存在硬盘此类的介质里,而硬盘比内存的价格低廉,所以它可以持久化。卡夫卡的分布式保证了高可靠性。如果想要加入新服务器,只需简单的配置,因此具有高扩展性

    【1】Mac 启动Zookeeper:

    ./zookeeper-server-start.sh ../config/zookeeper.properties &
    
    • 1

    【2】启动Kafka:

    ./kafka-server-start.sh ../config/server.properties &
    
    • 1

    【3】创建Topic

    ./kafka-topics.sh --bootstrap-server localhost:9092 --create --topic javaTopic --partitions 2 --replication-factor 1
    
    • 1

    replication-factor:指定副本数量
    partitions:指定分区

    【4】查看Topic

    ./kafka-topics.sh --bootstrap-server localhost:9092 --list
    
    • 1

    【5】删除Topic

    ./kafka-topics.sh --bootstrap-server localhost:9092 --delete -topic javaTopic
    
    • 1

    【6】生产消费数据
    【6-1】生产者

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic javaTopic
    
    • 1

    【6-2】消费者

    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic javaTopic --from-beginning
    
    • 1
  • 相关阅读:
    如何在h5和小程序中适配iphoneX及更高版本全面屏底部的安全区
    c++入门99题31-40
    torch 写模型遇到 RuntimeError: Found dtype Double but expected Float
    tf.gather_nd
    【Linux】VM及WindowsServer安装
    黑马瑞吉外卖项目开发笔记
    用Unity重现《空洞骑士》的苦痛之路(2)——地图篇
    漫画 | 永不过时的编程语言终于出现了!
    VS2022新建项目时没有ASP.NET Web应用程序 (.NET Framework)
    【USB设备设计】-- CDC 设备开发(虚拟串口设备)
  • 原文地址:https://blog.csdn.net/qq_42251120/article/details/132781970