• Apache Kafka学习 (一)


    前言:最近公司开始要研究大数据的消息记录,于是开始研究kafka。

    市面上kafka的书很少,有的也版本比较落后,于是仗着自己英文还不错,上官网直接学习。 ^_^

    1. 开始 - 基本概念

    学习一样东西,我们首先要知道它是什么。

    那么kafka是什么呢?

    照官网的解释: 

    Apache Kafka™ is a distributed streaming platform

    (Kafka是一个分布式的流式数据平台。)

    照着官网的解释,kafka拥有以下3项主要能力:

    1) 能够在流记录上进行发布和订阅,类似于消息队列了。

    2) 能够容错存储流记录。

    3) 能够处理流记录。

    那么,接下来又要问了,我们用kafka的好处是什么呢?

    主要有以下2点好处:

    1) 在系统或者应用之间可以构建可依赖的实时的流数据管道。

    2)  可以构建实时的处理流数据的系统。

    2. 核心概念

    * kafka以集群的方式运行在一台或多态服务器上。

    * kafka集群根据topic(主题)对存储的流记录进行分类。

    * 每条流记录包含一个键值对和一个时间戳。

    3. 核心API

    * Producer(生产者) API 允许应用程序发布流记录到一个或多个kafka主题。

    * Consumer(消费者) API允许应用程序订阅一个或多个kafka主题,从而对这些主题下的流数据进行处理。

    * Streams(流) API则负责高效地处理各个主题下的流记录。

    * Connector(连接器) API允许构建可重用的生产者或消费者,并且让他们和现有的系统进行对接。

      (举个例子:一个连接到关系型数据库的连接器可以捕捉表格的每次改变)

     

    4. 主题和日志

    一个主题可以被多个消费者订阅。

     kafka的每个主题是以分区日志的形式维护的。

    日志中的每个分区分布在集群中的各个服务器上。

    有一台服务器扮演leader(头领)的角色,而其余的服务器则是followers(跟随者)。

    5. 生产者(Producer)和消费者(Consumer)

    上图是2台服务器的kafka集群带了4个分区(P0 - P3), 2组Consumer订阅Producer发布的主题消息。

    6. 安装和启动

    1)下载kafka源码

    https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz

    > tar -xzf kafka_2.11-0.10.2.0.tgz
    > cd kafka_2.11-0.10.2.0

    2) 启动服务器

    由于kafka使用zookeeper来管理集群,所以你先需要启动zookeeper。

    如果你没有安装zookeeper,你可以是用户kafka的内置脚本启动一个单节点的zookeeper实例。
      2-1) 启动单节点zookeeper实例:

      > bin/zookeeper-server-start.sh config/zookeeper.properties

      2-2) 启动kafka server:

      > bin/kafka-server-start.sh config/server.properties

       2-3) 创建topic(主题)

       > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

       2-4) 使用list命令查看所有主题

       > bin/kafka-topics.sh --list --zookeeper localhost:2181

         显示结果:  test

    7. 发送消息

    # 运行生产者脚本,并向刚刚创建的test主题发送一些消息

    > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

    你可以打一些字,如下:

    哈哈哈

    嘿嘿,你好啊

    8. 接收消息

    # 运行消费者脚本,从test主题订阅消息

    > bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

      收到消息:

      哈哈哈

      嘿嘿,你好啊

    我们以上演示需要开启4个控制台,效果如下:

    好了,第一次笔记到此结束,后续会继续阅读学习。 ^_^




  • 相关阅读:
    python基础之数值类型
    第一个python学习笔记
    入学潭州科技教育学习python语言
    Python 编码规范(Google)
    Python
    博客开通
    文件、异常、文件的输入输出
    内置函数,变量的作用域,闭包及递归
    序列类型各自的方法(1)
    函数基础
  • 原文地址:https://www.cnblogs.com/davidgu/p/6500729.html
Copyright © 2020-2023  润新知