首页 > 其他分享 >(四)kafka从入门到精通之安装教程

(四)kafka从入门到精通之安装教程

时间:2023-07-02 21:13:15浏览次数:47  
标签:教程 入门 -- Zookeeper kafka docker Kafka 分布式

1、kafka和zookeeper简介

Kafka是一个高性能、低延迟、分布式的分布式数据库,可以在分布式环境中实现数据的实时同步和分发。

Zookeeper是一种开源的分布式数据存储系统,它可以在分布式环境中存储和管理数据库中的数据。它的主要作用是实现数据的实时同步和分发,可以用于实现分布式数据库、分布式文件系统、分布式日志系统等。Zookeeper的设计目标是高可用性、高性能、低延迟,它支持多种客户端协议,包括TCP和HTTP,可以方便地与其他分布式系统进行集成。此外,Zookeeper还支持分布式锁、分布式领导选举等功能,可以用于实现分布式应用程序的管理和协调。总之,Zookeeper是一种非常重要的分布式数据存储系统,它可以在分布式系统中发挥重要作用。

Zookeeper和Kafka是两种常用的分布式数据存储系统,它们的作用和使用场景有所不同,但它们之间有一定的关联。

首先,Zookeeper可以用于存储和管理数据库中的数据,而Kafka可以用于在分布式环境中分发和消费数据。因此,可以将Kafka作为Zookeeper的客户端,使用Zookeeper存储和管理数据,并通过Kafka来在分布式环境中分发和消费数据。

其次,Zookeeper和Kafka都可以使用多种客户端协议,包括TCP和HTTP,这意味着它们可以方便地与其他分布式系统进行集成。因此,可以将Zookeeper和Kafka组合使用,构建一个分布式数据存储系统,可以充分利用这两种数据存储系统的优点。

总之,Zookeeper和Kafka之间有密切的关系,它们可以结合使用,构建一个分布式数据存储系统,用于在分布式环境中存储和管理数据。

2、安装步骤

linux环境主要是centos,默认已经安装好docker,这次咱们需要把docker-compose也安装上。
首先,在终端中输入以下命令来更新系统软件包列表:

sudo yum update

然后,输入以下命令来安装 Docker Compose:

sudo yum install docker-compose

在这里插入图片描述
在这里插入图片描述

为了提高镜像下载速度,咱们需要更换docker镜像源

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. 创建一个kafka.yml文件

先创建一个kafka目录

mkdir /kafka

在项目根目录下创建一个yml文件,例如docker-compose.yml,文件内容如下:

version: '3.2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    restart: always
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_LISTENERS=PLAINTEXT://:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/localtime:/etc/localtime # 保证容器时区与宿主机一致
    restart: always

这个文件定义了一个名为“kafka”的服务,使用Wurstmeister的Kafka镜像。

同时,定义了一个名为“zookeeper”的服务,使用Wurstmeister的Zookeeper镜像,将Zookeeper的主机路径设置为“localhost:2181”。

3. 运行Docker Compose.yml文件

docker-compose up -d

这个命令将在docker-compose.yml文件中定义的服务启动后自动运行。
第一次运行因为需要下载镜像,会比较慢
在这里插入图片描述

在这里插入图片描述

3、验证Kafka和Zookeeper集群

你可以使用以下命令来验证Kafka和Zookeeper集群是否已经运行:

# 进入容器
docker exec -it kafka /bin/bash

在这里插入图片描述

# 创建名为 test 的 topic
kafka-topics.sh --create --topic test --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1
# 查看刚刚创建的 topic 信息
kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic test
# 作为生产者发送测试消息
kafka-console-producer.sh --topic=test --broker-list kafka:9092
>test1
>test2
>hello

在这里插入图片描述

kafka-console-consumer.sh --bootstrap-server kafka:9092 --from-beginning --topic test

在这里插入图片描述

这个命令作为消费者接收刚才发送的测试消息,能接收到则证明服务部署成功

这就是一个基于Docker Compose的Kafka和Zookeeper安装和部署教程。希望这个教程能够帮助你在Docker容器中部署和管理Kafka和Zookeeper。

标签:教程,入门,--,Zookeeper,kafka,docker,Kafka,分布式
From: https://www.cnblogs.com/yin-feng/p/17521388.html

相关文章

  • Kafka—生产者和消费者的内部结构
     生产者将数据发布到Kafka主题的应用程序称为生产者。应用程序集成了一个Kafka客户端库来写入Kafka。编写过程从创建ProducerRecird开始。 KafkaProducers中的组件/流程拦截器——可以在发送之前改变记录的拦截器,例如Claim-check-interceptor。生产者元数据—......
  • Kafka-核心设计和实现原理,生产者和消费者详述
    1.体系架构Producer:生产者Consumber:消费者Broker:服务代理节点(kafka实例)2.消息存储主题(Topic):kafka消息以topic为单位进行归类,逻辑概念分区(Partition):Topic-Partition为一对多分区在存储层面可看做是一个可追加的日志文件消息在追加到分区时会分配一个特定的偏移量(offset)作为在此分区......
  • Filter-快速入门
       ......
  • Kafka-核心设计和实现原理,生产者和消费者详述
    1.体系架构 Producer:生产者Consumber:消费者Broker:服务代理节点(kafka实例) 2.消息存储主题(Topic):kafka消息以topic为单位进行归类,逻辑概念分区(Partition):Topic-Partition为一对多分区在存储层面可看做是一个可追加的日志文件消息在追加到分区时会分配一个特定的......
  • kafka入门必备知识
    1.Kafka是一个分布式流处理平台:可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。2.消息系统:定义将数据从一个应用程序传递到另一个应用程序,通过提供消息传递和消......
  • (一)kafka从入门到精通之初识kafka
    一、发布订阅系统在学习kafka之前,我们先来看看什么是发布订阅系统。概念数据的发送者不会直接把消息发送给接收者,这是发布与订阅消息系统的一个特点。发布者以某种方式对消息进行分类,接受者订阅它们,以便接受特定类型的消息。发布与订阅系统一般会有一个broker,也就是发布消息的......
  • (二)kafka从入门到精通之kafka的优势
    学习传送门(一)kafka从入门到精通之初识kafka一、常用消息队列比较基于发布与订阅的消息系统那么多,为什么Kafka会是一个更好的选择呢?咱们先来简单的看看mq的一个对比图吧。特性ActiveMQRabbitMQRocketMQKafka生产者消费者模式支持支持支持支持发布订阅......
  • Charles 使用教程
    一、Charles简介Charles是在PC端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析Https协......
  • 搭建vsftp服务器,教程简单值得推荐
    centos7之vsftp安装和使用 centos7之vsftp安装和使用-Charles.L-博客园(cnblogs.com)......
  • 入门前端学习内容
    html css js es6(重要)axiosgitwebpacknodejsvue2和3uniapp,react和Typescript可以等到工作后再学UI组件库可以学下ElementUI,其中webpack和nodejs了解即可,其他的最好认真学习......