zoukankan      html  css  js  c++  java
  • 高并发系列之——MQ消息中间件Kafka

     1.前言

    1.1 包路径和源码

      下载链接

          基于发布订阅的分布式消息系统,使用scala语言编写。

    特点:采用分区机制,每个分区可以放到不同的服务器上,提高了吞吐率,同时基于磁盘存储,以及副本机制可以确保不丢失;流计算机制实现实时统计。

    1.2 适用场景:TB级以上的数据

      淘宝,美团,电影票,订单之类

    1.3 数据量

    1.4 发送消息手段

      单播:当所有的Consumer都归属于一个Consumer Group时,可以指定。

      广播:有多个Consumer Group时,则每个Consumer Group中都可以接收到同样的消息。

    1.5 认证协议:SASL_PLAINTEXT

    2.时序图

    一个kafka服务器称作一个broker,多个broker组成一个集群,其中有一个broker为首领。

    3.关键配置项

      补充:kafka适用于linux环境中,解压并配置环境变量KAFKA_HOME,修改配置项即可使用

    3.1 Zookeeper配置项:zookeeper.properties

    3.2 消费者配置项:consumer.properties

    3.3 生产者配置项:producer.properties

    3.4 Kafka配置项:server.properties

      主要配置项

      broker.id log.dirs zookeeper.connect

    4.生产者实现步骤KafkaProducer

    1. 读取生产者配置项
    2. 实例化ProducerConfig,并设置属性
    3. 实例化KeyedMessage,构造消息
    4. 实例化Producer,并send消息

    5.消费者实现步骤KafkaConsumer

    1. 读取kafka配置文件中zookeeper链接字符串
    2. 实例化ConsumerConfig,并设置属性
    3. 创建Kafka连接器
    4. 通过topic获取数据流
    5. 关闭kafka链接

    6.扩展

    6.1 消息是什么?

      一组消息就是一个数据单元,由字节数组成。消息由键值对构成,其中key可以为空。

      可以分批次发送消息,格式为json或是xml。

    6.2 消息如何存储?

      通过主题分类,一个主题有若干分区,先进先出顺序读取。

    6.3 用什么维护broker信息?

  • 相关阅读:
    ionic3打包打包安卓apk详细过程以及遇到的问题
    webpack+vue解决前端跨域问题
    在ionic3+angular4项目中添加自定义图标
    十. 图形界面(GUI)设计13.鼠标事件
    十. 图形界面(GUI)设计13.鼠标事件
    十. 图形界面(GUI)设计12.滚动条
    十. 图形界面(GUI)设计11.对话框
    十. 图形界面(GUI)设计10.菜单
    十. 图形界面(GUI)设计9.列表和组合框
    十. 图形界面(GUI)设计8.选择框和单选按钮
  • 原文地址:https://www.cnblogs.com/guobm/p/10233208.html
Copyright © 2011-2022 走看看