文章目录

  • 1. jdk 环境安装配置
  • 配置环境变量
  • 2. ZooKeeper的安装
  • 3. kafka安装与配置
  • 4. kafka消息生产与消费测试
  • 创建主题
  • 生产者
  • 消费者
  • 附: jps 用法
  • 参数说明


1. jdk 环境安装配置

官网下载JDK
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

将jdk 拷贝至 /opt/java 目录下

解压: tar -xvf jdk-12.0.1_linux-x64_bin.tar.gz

配置环境变量

vi /etc/profile.d/java.sh (vi 没有java.sh文件会自动创建)

输入如下内容:

JAVA_HOME=/usr/java/jdk1.7.0_79
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

保存并退出,然后需要分配一下权限,让各个用户都可执行:

chmod 755 /etc/profile.d/java.sh

4、 2、 1 分别对应 读、 写、 执行

ok 重启试一下 java -version

2. ZooKeeper的安装

ZooKeeper官网:http://zookeeper.apache.org/

新建目录 /opt/java/zookeeper

上传 zookeeper-3.4.14.tar.gz 文件到zookeeper目录下

解压 tar -xvf zookeeper-3.4.14.tar.gz 到当前文件

修改Zookeeper的配置文件,首先进入安装路径conf目录,并将zoo_sample.cfg文件修改为 zoo.cfg,并对核心参数进行配置。

mv zoo_sample.cfg zoo.cfg

内容:

# The number of milliseconds of each tick 
# zk服务器的心跳时间 
tickTime=2000 
# The number of ticks that the initial 
# synchronization phase can take 
# 投票选举新Leader的初始化时间 
initLimit=10 
syncLimit=5  
# 数据目录 
dataDir=temp/zookeeper/data 
# 日志目录 
dataLogDir=temp/zookeeper/log 
# Zookeeper对外服务端口,保持默认 
clientPort=2181

启动zookeeper

bin/zkServer.sh start

停止:

sh zkServer.sh stop

3. kafka安装与配置

官网下载:http://kafka.apache.org/downloads

上传 到 /opt/kafka/ 目录下

解压 tar -xvf kafka_2.12-2.2.1.tgz

server.properties配置中需要关注以下几个参数:

  • broker.id=0 表示broker的编号,如果集群中有多个broker,则每个broker的编号需要设置 的不同
  • listeners=PLAINTEXT://:9092 brokder对外提供的服务入口地址 log.dirs=/tmp/kafka/log 设置存放消息日志文件的地址
  • zookeeper.connect=localhost:2181 Kafka所需Zookeeper集群地址,本示例中Zookeeper和 Kafka都安装本机

启动命令:

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

启动成功之后重新打开一个终端,验证启动进程

[root@localhost fbd]# jps -l
10501 kafka.Kafka
9880 org.apache.zookeeper.server.quorum.QuorumPeerMain
11165 jdk.jcmd/sun.tools.jps.Jps
[root@localhost fbd]#

4. kafka消息生产与消费测试

创建主题

新打开一个终端窗口, 并创建一个主题 topicone

进入kafka程序目录 cd /opt/kafka/kafka_2.12-2.2.1/ 执行如下命令创建主题

bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic topicone --partitions 2 --replicationfactor 1

–zookeeper:指定了Kafka所连接的Zookeeper服务地址

–topic:指定了所要创建主题的名称

–partitions:指定了分区个数

–replication-factor:指定了副本因子

–create:创建主题的动作指令

  • 展示所有主题: bin/kafka-topics.sh --zookeeper localhost:2181 --list
[root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
topicone
  • 查看主题详情
[root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic topicone
Topic:topicone	PartitionCount:2	ReplicationFactor:1	Configs:
	Topic: topicone	Partition: 0	Leader: 0	Replicas: 0	Isr: 0
	Topic: topicone	Partition: 1	Leader: 0	Replicas: 0	Isr: 0
[root@localhost kafka_2.12-2.2.1]#

生产者

[fbd@localhost ~]$ cd /opt/kafka/
[fbd@localhost kafka]$ cd kafka_2.12-2.2.1/
[fbd@localhost kafka_2.12-2.2.1]$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topicone
>hello,kafka!
>the first
>we did it 
>

–broker-list 指定了连接的Kafka集群的地址
–topic 指定了发送消息时的主题

消费者

[root@localhost kafka_2.12-2.2.1]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicone
hello,kafka!
the first
we did it

–bootstrap-server 指定了连接Kafka集群的地址
–topic 指定了消费端订阅的主题

可以看到已经收到了生产者发送的消息.

附: jps 用法

jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。
如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。
如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。

参数说明

-q: 只输出进程 ID
-m:输出传入 main 方法的参数
-l: 输出完全的包名,应用主类名,jar的完全路径名
-v: 输出jvm参数
-V:输出通过flag文件传递到JVM中的参数