zoukankan      html  css  js  c++  java
  • 消息中间件--kafka(1)安装部署

    一、概念

    1、什么是kafka

    Kafka是由Apache软件基金会开发的一个开源的分布式流处理平台,由LinkedIn公司开发,使用 ScalaJava编写。Kafka是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),它可以处理消费者在网站中的所有动作流数据。

    • Kafka在一个或多个可以跨越多个数据中心的服务器上作为集群运行。

    • Kafka集群将记录流存储在称为topic的类别中。

    • 每个记录由一个键,一个值和一个时间戳组成。

    2、流平台具有三个关键功能:

    • 发布和订阅记录流,类似于消息队列或企业消息传递系统。

    • 以容错的持久方式存储记录流。

    • 处理记录流。

    3、解决什么问题

    Kafka主要设计目标如下:

    • 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。

    • 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。

    • 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。

    • 同时支持离线数据处理和实时数据处理。

    • Scale out:支持在线水平扩展

    Kafka通常用于两大类应用程序:

    • 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据

    • 构建实时流应用程序以转换或响应数据流

    4、在Kafka中,客户端和服务器之间的通信是通过简单,高性能,与语言无关的TCP协议完成的该协议已版本化,并与旧版本保持向后兼容性。提供了Java客户端,但是客户端支持多种语言

    二、安装部署kafka

    下载地址:http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz

    kafka最为重要三个配置依次为:broker.id、log.dir、zookeeper.connect,kafka server端config/server.properties参数

    vim config/server.properties

    ·公布访问地址和端口

    advertised.listeners=PLAINTEXT://192.168.3.100:9092

    配置zookeeper

    默认localhost:2181,如果是其他的zookeeper改为相应地址

    zookeeper.connect=localhost:2181

    启动kafka

    [root@node1 bin]# ./kafka-server-start.sh ../config/server.properties

     注:此方法为前台启动,若需要后台启动,则在上面命令的最后加上 &

    检测是否启动 netstat -tunlp | egrep "(2181|9092)"

    测试发送信息和消费消息

    创建主题

    [root@node1 bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

    启动生产者

    [root@node1 bin]#./kafka-console-producer.sh --broker-list localhost:9092 --topic test

    启动消费者

    [root@node1 bin]#./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

    生产者发布消息

    [root@node1 bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
    >is successfully
    >good night
    >

    消费者接收到消息

    [root@node1 bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    hallo
    ;
    你好
    is successfully
    good night

    注:消费者中会出现一些历史消息

      由于启动添加了--from-beginning参数,所以会把过往消息也显示,省略该参数,即可不显示历史消息就!



  • 相关阅读:
    vue2 下载scss依赖包
    fastjson使用
    vscode format
    flutter 中涉的深拷贝
    通过pom给maven添加编译插件
    IDEA添加动态模板(Live Templates)
    Maven启动tomcat:run异常
    Redis
    tomcat启动时启动窗口出现乱码的解决方案
    无效的源发行版,解决方案
  • 原文地址:https://www.cnblogs.com/lfhappy/p/11675155.html
Copyright © 2011-2022 走看看