kafka安装_kakfa2安装指北,看完不要说不会安装kafka了

前言

258aee86ffb02e7a2be08fb0afe3472f.png

kafka

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

kafka简介

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

Kafka就是一种发布-订阅模式的消息系统,允许一个或多个生产者发布消息,而不需要考虑消费者的数量或他们将如何处理消息。

Kafka主要设计目标如下:

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

kafka集群部署

cfceac13ed02148d5b9d9e7aa21170a5.png

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=kafkaAfter=network.target[Service]Type=forkingLimitCORE=infinityLimitNOFILE=infinityLimitNPROC=infinityEnvironment="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/binExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon $CONFFILEExecStop=/usr/local/kafka/bin/kafka-server-stop.shUser=kafkaGroup=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=zookeeperAfter=network.target[Service]Type=forkingLimitCORE=infinityLimitNOFILE=infinityLimitNPROC=infinityEnvironment=ZOO_LOG_DIR=/data/zookeeper/logsEnvironment=PATH=/data/jdk/bin:/data/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/binExecStart=/usr/local/zookeeper/bin/zkServer.sh startExecStop=/usr/local/zookeeper/bin/zkServer.sh stopExecRestart=/usr/local/zookeeper/bin/zkServer.sh restartUser=zookeeperGroup=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集群正常。

后记

2f8720759ee0189aad67f0bff4fe7256.png

kafka

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值