• kakfa2安装指北


    https://www.digitalocean.com/community/tutorials/how-to-install-apache-kafka-on-centos-7

    前言


    kafka
    业务原因,最近在做kafka的迁移。本来是准备直接用阿里云的kafka,但是算了下成本,相同配置费用比自建要高2倍以上,经过讨论(没钱)后决定,使用自建kafka。这边文章记录下安装过程,便于之后翻阅。

    kafka简介

    Apache Kafka是一个分布式消息服务,旨在有效地处理大量实时数据。Kafka集群不仅具有高度的可伸缩性和容错能力,而且其吞吐量也比其他消息服务(如ActiveMQ和RabbitMQ)高得多。虽然它通常用作发布/订阅消息传递系统,同时kafka也可以作为日志收集的中转站,因为它为已发布的消息提供了持久存储。
    Kafka就是一种发布-订阅模式的消息系统,允许一个或多个生产者发布消息,而不需要考虑消费者的数量或他们将如何处理消息。

    Kafka主要设计目标如下:

    • 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。
    • 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。
    • 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
    • 同时支持离线数据处理和实时数据处理。
    • Scale out:支持在线水平扩展

    kafka集群部署


    kafka集群

    kafka部署

    kafka下载地址:https://kafka.apache.org/downloads

    # useradd kafka
    # wget "https://mirror.olnevhost.net/pub/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz"
    # tar xf kafka_2.12-2.6.0.tgz -C /usr/local/
    # ln -s kafka_2.12-2.6.0 kafka
    

    修改kafka配置文件(server.properties
    ):根据实际业务调整优化
    添加kafka到系统服务里:

    # more /usr/lib/systemd/system/kafka.service
    [Unit]
    Description=kafka
    After=network.target
    
    [Service]
    Type=forking
    LimitCORE=infinity
    LimitNOFILE=infinity
    LimitNPROC=infinity
    Environment="CONFFILE=/usr/local/kafka/config/server.properties"
    Environment=PATH=/data/jdk/bin:/data/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
    ExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon $CONFFILE
    ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
    User=kafka
    Group=kafka
    
    [Install]
    WantedBy=multi-user.target
    
    # systemctl daemon-reload 
    # systemctl start kafka
    

    zookeeper部署

    zk下载地址:https://zookeeper.apache.org/releases.html

    # useradd zookeeper
    # wget "https://www.strategylions.com.au/mirror/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz"
    # tar xf apache-zookeeper-3.5.8-bin.tar.gz -C /usr/local/
    # ln -s apache-zookeeper-3.5.8-bin zookeeper
    

    修改zookeeper配置文件(zoo.cfg
    ):根据实际业务调整优化
    zk集群需要设置myid!
    添加zookeeper到系统服务里:

    # more /usr/lib/systemd/system/zookeeper.service
    [Unit]
    Description=zookeeper
    After=network.target
    
    [Service]
    Type=forking
    LimitCORE=infinity
    LimitNOFILE=infinity
    LimitNPROC=infinity
    Environment=ZOO_LOG_DIR=/data/zookeeper/logs
    Environment=PATH=/data/jdk/bin:/data/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
    ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
    ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
    ExecRestart=/usr/local/zookeeper/bin/zkServer.sh restart
    User=zookeeper
    Group=zookeeper
    
    [Install]
    WantedBy=multi-user.target
    # systemctl daemon-reload 
    # systemctl start zookeeper
    

    集群测试

    集群安装完毕,对集群做一个简单测试,确保集群可用。
    创建一个测试topic:

    # sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic kafka2-test
    ...
    Created topic "kafka2-test"
    ...
    

    将hello字符串发送到topic kafka2-test:

    # echo "Hello, World" | /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kafka2-test > /dev/null
    

    查看消息:

    # sh /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka2-test --from-beginning
    ...
    Hello, World
    ...
    

    能够查看到发送的消息,证明kafka集群正常。

    后记

    本文只是记录下kafka的一个安装过程,关于kafka的压测,下篇文章继续。如果有不对的地方,欢迎大家批评指正,共同学习。

  • 相关阅读:
    利用ItextPdf、core-renderer-R8 来生成PDF
    把war包放到Tomcat安装文件夹下,不能直接訪问的解决方式
    我的RTOS 之六 -- Touch移植(s5pv210+threadx+ucgui+touch)
    数据库可用率监控工具
    9款极具创意的HTML5/CSS3进度条动画(免积分下载)
    ODBC与JDBC比較
    ORA-02287: 此处不同意序号
    mongodb创建、更新、删除
    jcenter那些事儿
    C#里的应用程序域AppDomain
  • 原文地址:https://www.cnblogs.com/aresxin/p/kakfa2an-zhuang-zhi-bei.html
Copyright © 2020-2023  润新知