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信息?

  • 相关阅读:
    呈现系统-组件间的通信方式(7)
    web项目中图标的前端处理方案
    ADO--数据访问技术
    canvas--绘制路径
    canvas--改变颜色
    canvas-在画布中画两个方块(一个空心一个实体)
    canvas--画布《第一步》
    拼图游戏【简单】
    判断字符串是否为空--string.Empty、string=""、s.length==0
    判断Char是否为数字
  • 原文地址:https://www.cnblogs.com/guobm/p/10233208.html
Copyright © 2011-2022 走看看