Ubuntu简单安装kafka及使用

本文详细介绍了在Ubuntu系统中安装Kafka的步骤,包括下载二进制包,上传并解压,启动服务,以及Kafka的基本操作如创建、删除主题,发送和接收消息。此外,还讲解了Kafka的集群搭建过程,讨论了其数据一致性、幂等性和容错机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu简单安装kafka及使用

参考地址:https://www.jianshu.com/p/d0e630c8f4ae

kafka是一个分布式的基于发布订阅模式的消息队列,主要应用于大数据实时处理领域。(kafka是消费者主动拉取生产者的信息)

作用(所有的消息队列):(1)、解耦:不需要两个应用都同时在线(强依赖);(2)、缓冲:解决生产消息和消费消息的处理速度不一致的情况;(3)、灵活性&削封:在访问量剧增的情况下,可以使关键组件顶住突发的访问压力,而不会造成组件的崩溃;(4)、异步通信:当一些信息不需要立即处理时,可以充当队列,在需要处理的时候从队列中获取。

(为防止log文件过大导致数据定位效率低下,kafka采取了分片和索引机制,将每个分区分为多个片段(segment),每个segment对应两个文件--.index和.log文件)

分区原因:

  (1)、方便在集群中扩展。每个分区可以通过调整以适应它所在的机器,而一个topic又可以由多个分区组成,因而整个集群就可以适应任意大小的数据了;

  (2)、可以提高并发。因为可以以分区为单位进行读写了。

kafka数据可靠性保证(不丢数据):为保证producer发送的数据,能可靠的发送到指定的topic,topic的每个分区收到producer发送的数据之后,都需要向producer发送acks(acknowledgement确认收到),如果producer没有收到acks,将会重新发送数据,否者进行下一轮发送。

kafka采用所有副本同步完成之后,才发送acks(这样做延迟高,但是重新选举leader时,容忍n台节点的故障,只需要n+1

### 在 Ubuntu Docker 环境中部署 Kafka 集群 #### 前置条件 为了成功部署 Kafka 集群,需确认已安装 Docker 和 Docker Compose。如果尚未安装,请访问官方文档完成安装流程[^1]。 --- #### 创建 `docker-compose.yml` 文件 创建一个名为 `docker-compose.yml` 的文件,并将其配置如下: ```yaml version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:latest environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: - "2181:2181" kafka-1: image: confluentinc/cp-kafka:latest depends_on: - zookeeper ports: - "9092:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 kafka-2: image: confluentinc/cp-kafka:latest depends_on: - zookeeper ports: - "9093:9093" environment: KAFKA_BROKER_ID: 2 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 ``` 上述配置定义了一个 ZooKeeper 实例和两个 Kafka 节点(kafka-1 和 kafka-2)。通过此设置可以启动一个简单Kafka 集群环境。 --- #### 启动 Kafka 集群 在保存好 `docker-compose.yml` 文件后,在同一目录下运行以下命令来启动服务: ```bash docker-compose up -d ``` 这会以后台模式启动所有的容器实例。可以通过以下命令验证各服务的状态: ```bash docker ps ``` 应能看到三个正在运行的服务:ZooKeeper、Kafka-1 和 Kafka-2。 --- #### 访问 Kafka 容器内部 要进入某个 Kafka 容器的 shell 并执行操作,可使用以下命令: ```bash docker exec -it kafka-1 bash cd /opt/kafka/bin/ ``` 或者对于另一个节点: ```bash docker exec -it kafka-2 bash cd /opt/kafka/bin/ ``` 这些路径可能因镜像版本不同而有所变化;具体位置参见实际使用的镜像说明[^2]。 --- #### 创建 Topic 测试 一旦进入了 Kafka 容器中的 bin 目录,即可尝试创建一个新的主题 (topic),例如命名为 `test-topic`: ```bash ./kafka-topics.sh --create \ --bootstrap-server localhost:9092 \ --replication-factor 1 \ --partitions 1 \ --topic test-topic ``` 随后可通过以下命令查看当前存在的 topic 列表: ```bash ./kafka-topics.sh --list --bootstrap-server localhost:9092 ``` 以上步骤可用于验证集群是否正常工作[^3]。 --- #### 总结 按照前述方法可以在基于 Ubuntu 的 Docker 环境中快速构建起一个可用的 Kafka 集群。整个过程依赖于 Docker 提供的强大虚拟化能力以及预设好的镜像资源简化了传统手动安装与配置的工作量。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值