概述
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写。后来成为Apache软件基金会开源项目。它是一个发布与订阅消息系统,是系统架构中常用的MQ中间件。具有如下特点:
- 伸缩性。随着数据量增长,可以通过对broker集群水平扩展来提高系统性能。
- 高性能。通过横向扩展生产者、消费者(通过消费者群组实现)和broker(通过扩展实现系统伸缩性)可以轻松处理巨大的消息流。
- 使用顺序写入和MMFile(内存映射文件)写入消息
- 使用零拷贝技术 读取消息
- 消息持久化。基于磁盘的数据存储,消息不会丢失。
安装
- 3台虚拟机
- master 1台 (1核1g20g硬盘)192.168.133.240
- node 2 台 (1核1g20g硬盘)192.168.133.241, 192.168.133.242
- 系统版本: CentOS Linux release 7.5.1804 (Core)
- jdk 11.0.2
- zookeeper 3.6.0
- kafka_2.13-2.4.1
# 安装方式
# 1. 官网 https://repo.huaweicloud.com/java/jdk/
# 2. 华为镜像 https://repo.huaweicloud.com/java/jdk/
# 3. yum install openjdk
[root@localhost ~]# wget https://repo.huaweicloud.com/java/jdk/11.0.2+9/jdk-11.0.2_linux-x64_bin.rpm
[root@localhost ~]# rpm -ivh jdk-11.0.2_linux-x64_bin.rpm
# 配置环境变量
[root@localhost ~]# vim .bashrc
# 添加 java环境变量
JAVA_HOME=/usr/java/latest
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.
export JAVA_HOME
export PATH
export CLASSPATH
# 导入环境变量
[root@localhost ~]# source .bashrc
# 设置时区
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
[root@localhost ~]# yum install -y ntp
[root@localhost ~]# ntpdate ntp1.aliyun.com
# 设置hostname
# 【master上操作】hostnamectl set-hostname master
# 【node1上操作】hostnamectl set-hostname node1
# 【node2上操作】hostnamectl set-hostname node2
[root@localhost ~]# hostnamectl set-hostname master
# 修改hosts
[root@master ~]# vim /etc/hosts
# 如下
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain lo