前言
这里简单做一个入门小白的消息中间件的介绍,以后会更新。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
特性
- 通过复杂度O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
- 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
- 支持通过Kafka服务器和消费机集群来分区消息。
- 支持Hadoop并行数据加载。
详细的介绍参考博文 https://blog.csdn.net/imgxr/article/details/80130878
下载安装
下载点这里官网快速通道,下载注意一点,尽量下载编译好的,不要下载成源码了。
如何解压不过多赘述,解压到某目录下。kafka的启动依赖于jdk,确保你的环境中安装好了jdk。并且而配置好环境变量了。这里直接贴代码。首先sudo vi /etc/profile注意更改成自己的目录就好。更改完记得使配置文件生效
export JAVA_HOME=/home/ubuntu18/jdk1.8.0_211
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
#配置ZOOKEEPER环境变量
export ZOOKEEPER_HOME=/home/ubuntu18/kafka_2.12-2.2.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#配置KAFKA环境变量
export KAFKA_HOME=/home/ubuntu18/kafka_2.12-2.2.0
export PATH=$PATH:$KAFKA_HOME/bin
# 使配置生效source /etc/profile
修改kafka配置文件
这里是单结点,配置相对简单,分布式、伪分布式以后再做详细介绍。
cd kafka_2.12-2.2.0/config/
#编辑配置文件
vi server.properties
broker.id=0
#端口号、记得开启端口,云服务器要开放安全组
port=9092
#服务器IP地址,修改为自己的服务器IP
host.name=127.0.0.1
#zookeeper地址和端口, Kafka支持内置的Zookeeper和引用外部的Zookeeper
zookeeper.connect=localhost:2181
开启服务
启动kafka服务必须先启动zookeeper服务,如下,进入到kafka安装目录下
cd kafka_2.12-2.2.0
# & 为后台启动
#启动zookeeper服务
bin/zookeeper-server-start.sh config/zookeeper.properties &
#启动kafka
bin/kafka-server-start.sh config/server.properties &
遇到的坑
1、首先“No such file or directory”是最常见的错误了,一般是jdk配置安装有问题,安装路径下不要有中文,空格,路径一致等这一方面注意,我这里的错误也是折腾了很久,由于是从头开始安装,把原来的jdk卸载了,/etc/profile也更改了,但是之前配置jdk时更改过~/.bashrc文件,忘了改回来,以至于折腾很久,详情可以看一下这篇文章中jdk的安装部分。https://blog.csdn.net/jin_tk/article/details/88803368
2、然后就是启动kafka服务时“failed; error=‘Cannot allocate memory’ (errno=12)”其实是kafka容器报内存不足异常。你这里需要更改下配置文件,讲图片中的设置小一点
sudo vi kafka-server-start.sh
# 找到这一行export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
# 改为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"