kafka系列二:中间件搭建

67 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

中间件/kafka/搭建

💻实验环境:

操作软件版本号/描述
操作系统centos7
JDKjdk-8u181-linux-x64.tar.gz下载地址
Apache ZooKeeperzookeeper-3.4.12下载地址
ZooInspectorzk可视化工具下载地址
kafkakafka_2.11-2.0.0下载地址
kafka-toolkafka可视化工具下载地址

🦴一、linux目录划分

  • 🥕linux安装目录划分:linux安装目录划分
  • 🥕安装路径:/usr/local 本地安装的软件和其他文件放在这里,一般新建/usr/local/software
  • 🥕查看linux位数:getconf LONG_BIT

🦴二、jvm安装

  • 🥕安装路径:/usr/lib/jvm
  • 🥕检查是否已装有jdk
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
cd /usr/lib/jvm
wget http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz
tar -zxvf jdk-8u161-linux-x64.tar.gz

🥕配置环境变量

  • vim /etc/profile编辑文件
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_181
JRE_HOME=/usr/lib/jvm/jdk1.8.0_181/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
  • source /etc/profile 生效

🥕查看是否生效

[root@localhost jdk1.8.0_181]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

☢️遇到的问题: 第一次下载时,通过wget下载到的tar包是有问题的,通过tar -zxvf xxx一直解压不成功,然后通过 file xxxx 查看文件,发现它是html内容的,就知道下载错了

🦴三、安装zookeeper

🥕官方文档

https://zookeeper.apache.org/

🥕安装目录:/usr/local/software/zookeeper/zookeeper-3.4.12 默认端口:2181

🥕zk配置

2.编辑profile vim /etc/profile

export ZOOKEEPER_HOME=/usr/local/software/zookeeper/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile 3.cp zoo_sample.cfg zoo.cfg 复制配置文件

title:配置文件
collapse: false
~~~
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/software/zookeeper/zookeeper-3.4.12/data
dataLogDir=/usr/local/software/zookeeper/zookeeper-3.4.12/log
# the port at which the clients will connect
clientPort=2181
~~~

4.启动zk

cd $ZOOKEEPER_HOME/bin
# zk启动
./zkServer.sh start
# 用于校验运行情况
./zkServer.sh status

🥕 ZooInspector curator zk客户端 github.com/apache/cura…

☢️遇到的问题

用curator连接zk一直连补上去,用netstat查netstat -anp | grep 端口号也是正常的,然后外网telnet不通,本机telnet没问题,就发现防火墙没配置

netstat安装:yum -y install net-tools

🦴四、安装kafka

🥕官方地址

https://kafka.apache.org

🥕安装位置:/usr/local/software/kafka/kafka_2.11-2.0.0 🥕默认端口:9092

🥕kafka配置:

vim $Kafka_HOME/server.properties

# broker 的编号,如果集群中有多个 broker,则每个 broker 的编号需要设置的不同 
broker.id=O 
# broker 对外提供的服务入口地址,假如是要对外服务的话就需要填本机ip
listeners=PLAINTEXT://localhost:9092 
#存放消息 日志文件的地址 
log.dirs=/tmp/kafka-logs 
# Kafka所需的ZooKeeper集群地址,为了方便演示,我们假设 Kafka 和 ZooKeeper 都安装在本机 
zookeeper.connect=localhost:2181/kafka

🥕启动kafka:

# &为后台启动
./bin/kafka-server-start.sh config/server.properties &

jps -l 查看运行中的java程序

PS:jps 命令只是用来确认 Kafka 服务的进程己经正常启动 。 它是否能够正确地对外提供服务, 还需要通过发送和消费消息来进行验证

🥕验证功能正常

创建topic topic-demo

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

producter

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

consumer

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

800

🥕客户端kafka-tool连接

1.查看数据

2.增加topic 800

🦴五、zk和kafka可视化结构

800

800

800