快速了解kafka

本文介绍了Kafka的基本概念、安装过程、Kafka-eagle监控的安装,以及Kafka的逻辑和物理结构。强调了Kafka的高性能、消息持久化和伸缩性特点。详细阐述了生产者和消费者的流程,包括消息确认策略、幂等性和事务处理。此外,还讨论了数据同步机制,如ISR、LEO和HW在确保数据一致性中的作用。
摘要由CSDN通过智能技术生成
概述

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写。后来成为Apache软件基金会开源项目。它是一个发布与订阅消息系统,是系统架构中常用的MQ中间件。具有如下特点:

  1. 伸缩性。随着数据量增长,可以通过对broker集群水平扩展来提高系统性能。
  2. 高性能。通过横向扩展生产者、消费者(通过消费者群组实现)和broker(通过扩展实现系统伸缩性)可以轻松处理巨大的消息流。
    • 使用顺序写入和MMFile(内存映射文件)写入消息
    • 使用零拷贝技术 读取消息
  3. 消息持久化。基于磁盘的数据存储,消息不会丢失。
安装
  • 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值