1、安装
下载:去官网 http://kafka.apache.org/downloads.html
使用ftp上传至服务器,
或者直接使用网页下载或者命令行下载,安装压缩包
wget -c http://mirrors.shu.edu.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
运行 tar -zxvf kafka_2.12-1.1.0.tgz指令进行解压安装
2、配置mq运行需要的环境server.properties
2.1、配置连接zookeeper 服务
############################# Zookeeper #############################
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=localhost:2181
2.2、kafaka队列数据存放地址
############################# Log Basics #############################
# A comma separated list of directories under which to store log files
#kafka数据的存放地址,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能 /data/kafka-logs-1,/data/kafka-logs-2
log.dirs=/home/wangyong/mq/kafkaData/kafka-logs
3、启动kafka服务
3.1、在启动kafka服务前需要保证kafka连接的zookeeper服务是正常启动的
3.2、启动kafka服务 bin/kafka-server-start.sh config/server.properties &
3.3、启动正常信息
3.4、假如kafka启动产生异常信息则表示kafka服务启动失败
[root@developmentEnvironment kafka_2.12-2.1.0]# Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/wangyong/mq/kafka_2.12-2.1.0/hs_err_pid14350.log
Socket error Event: 32 Error: 10053.
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.72.129) at 18:29:36.
Type `help' to learn how to use Xshell prompt.
上面错误信息表示启动kafka服务时需要的内存空间过大服务无法正常启动,需要修改kafka服务的启动参数
打开kafka安装位置,在bin目录下找到kafka-server-start.sh文件,将
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"修改为
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
如果kafka安装在Windows下,在bin/windows下找到kafka-server-start.bat文件,将
set KAFKA_HEAP_OPTS=-Xmx1G -Xms1G 改为
set KAFKA_HEAP_OPTS=-Xmx256M -Xms128M
注意:有操作系统位数的区别,是32位系统修改32位的,是64位修改64位的
然后重新启动,运行成功就可以了;但是如果还是报同样的错误,进入到Kafka的安装位置,如下图,有一个错误的日志文件,删掉后,重新启动,就可以了。
3.5、假如出现一下异常信息表示给kafka服务(tomcat)启动分配的内存空间太小需要调整kafka服务的启动空间
[root@developmentEnvironment kafka_2.12-2.1.0]# Error occurred during initialization of VM
Initial heap size set to a larger value than the maximum heap size
[root@developmentEnvironment kafka_2.12-2.1.0]# bin/kafka-server-start.sh config/server.properties &
[2] 16352
[1] 退出 1 bin/kafka-server-start.sh config/server.properties
set KAFKA_HEAP_OPTS=-Xmx512M -Xms515M
检测2181与9092端口
netstat -tunlp|egrep "(2181|9092)"
tcp 0 0 :::2181 :::* LISTEN 19787/java
tcp 0 0 :::9092 :::* LISTEN 28094/java
说明:
Kafka的进程ID为28094,占用端口为9092
QuorumPeerMain为对应的zookeeper实例,进程ID为19787,在2181端口监听
4、启动两个客户端测试通讯是否正常
4.1、创建 TOPIC:使用 kafka-topics.sh
创建单分区单副本的 topic test:
|
查看 topic 列表:
|
4.2、启动消息生产者服务(需要保证kafka服务运行环境所在主机运行9092端口进行连接访问,否则服务启动)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
上述表示服务端正常启动,且发送了一个消息至kafka服务的test 主题队列的消息
4.3、启动kafka服务消费者客户端进行监听消息的接收
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
或者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
表示消息消费者服务正常启动,且接收到两天测试消息
参考资料
https://www.cnblogs.com/shengulong/p/9013282.html
https://www.cnblogs.com/justuntil/p/8033792.html