Linux安装Kafka

作者: 问题_解决_分享_讨论_最优 | 来源:发表于2020-01-20 02:11 被阅读0次

    kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横向扩容。单个parition内是保证消息有序。每新写一条消息,kafka就是在对应的文件append写,所以性能非常高。

    基础知识

    什么是消息队列(Message Queue)?

    • 消息(Message)

    网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:文本、音乐、视频等内容。

    • 队列(Queue)

    一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素。入队、出队。

    • 消息队列(MQ)

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

    MQ分类

    MQ主要分为两类:点对点(p2p)、发布订阅(Pub/Sub)

    共同点:

    *消息生产者生产消息发送到queue中,然后消息消费者从queue中读取并且消费消息。

    不同点:

    p2p模型包括:消息队列(Queue)、发送者(Sender)、接收者(Receiver)
    一个生产者生产的消息只有一个消费者(Consumer)(即一旦被消费,消息就不在消息队列中)。比如说打电话。
    Pub/Sub包含:消息队列(Queue)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。每个消息可以有多个消费者,彼此互不影响。比如我发布一个微博:关注我的人都能够看到。

    那么在大数据领域呢,为了满足日益增长的数据量,也有一款可以满足百万级别消息的生成和消费,分布式、持久稳定的产品——Kafka。

    vKafka概念

    在要了解Kafka之前,必须先了解主题,经纪人,生产者和消费者等主要术语。 下图说明了主要术语,表格详细描述了图表组件。如已了解的可以跳过此部分。

    Linux安装Kafka

    启动Kafka Broker后,在ZooKeeper终端上键入命令 jps,效果如下:

    Linux安装Kafka

    3.3 停止kafka

    bin/kafka-server-stop.sh config/server.properties

    回到顶部

    vKafka topic

    4.1 创建topic

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

    其中demo为创建的topic名称。

    Linux安装Kafka

    如上图,创建了一个名为 demo 的主题,其中包含一个分区和一个副本因子。 创建成功之后会输出:Created topic "demo".

    Linux安装Kafka

    如上图,创建主题后,系统会在config / server.properties文件中的"/ tmp / kafka-logs /"中指定的创建主题的日志。

    4.2 查询topic列表

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

    4.3 查看topic信息

    bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic demo

    4.3 删除topic

    bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo

    vKafka 生产/消费

    5.1 启动生产者

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

    从上面的语法,生产者命令行客户端需要两个主要参数 -

    代理列表 - 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties文件包含代理端口ID,因为我们知道我们的代理正在侦听端口9092,因此您可以直接指定它。主题名称:demo。

    5.2 启动消费者

    为了方便测试,另启一个sheel窗口 这样效果更明显。需要注意的是旧版本和新版本的命令是不一样的

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo --from-beginning

    报错提示:zookeeper is not a recognized option

    发现在启动的时候说使用 --zookeeper是一个过时的方法,最新的版本中命令如下:

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

    可以开启两个终端,一个发送消息,一个接受消息。效果如下:

    Linux安装Kafka

    Kafka 博客总结

    Kafka是一个统一的平台,用于处理所有实时数据Feed。 Kafka支持低延迟消息传递,并在出现机器故障时提供对容错的保证。 它具有处理大量不同消费者的能力。 Kafka非常快,执行2百万写/秒。 Kafka将所有数据保存到磁盘,这实质上意味着所有写入都会进入操作系统(RAM)的页面缓存。 这使得将数据从页面缓存传输到网络套接字非常有效。

    相关文章

      网友评论

        本文标题:Linux安装Kafka

        本文链接:https://www.haomeiwen.com/subject/lqyvactx.html