Ubuntu18.04 docker kafka 本地测试环境搭建

一、kafka 介绍

Kafka是一种分布式流处理平台,也是一个高吞吐量的分布式发布订阅消息系统。它由LinkedIn开发,并于2011年成为Apache软件基金会的顶级项目。

Kafka的设计目标是能够处理大规模的消息流,并提供持久性、高吞吐量和低延迟的特性。它的核心概念是发布-订阅模型,其中消息被组织成一个或多个主题(Topics),生产者(Producers)将消息发布到主题中,而消费者(Consumers)从主题中订阅并处理消息。

Kafka的主要特点包括:

  1. 高吞吐量:Kafka能够处理大规模的消息流,每秒可以处理数百万条消息。

  2. 持久性:Kafka将消息持久化存储在磁盘上,确保消息的可靠性和持久性。

  3. 可扩展性:Kafka采用分布式架构,可以在集群中添加更多的节点来扩展容量和吞吐量。

  4. 容错性:Kafka使用分布式复制机制来保证数据的可靠性,即使某个节点故障,数据仍然可用。

  5. 多语言支持:Kafka提供了多种编程语言的客户端接口,包括Java、Python、Go等,方便开发者使用。

Kafka在实时数据处理、日志收集、事件驱动架构等场景中被广泛应用。它被许多大型互联网公司用于构建高性能、可靠的数据管道和实时流处理系统。

二、Ubuntu docker kafka 本地测试环境搭建

2.1 docker kafka 启动

2.1.1 下载镜像

kafka需要zookeeper管理,所以需要先安装zookeeper

docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka

# 查看镜像是否下载成功
docker images

2.1.2 启动 wurstmeister/zookeeper

# 启动镜像生成容器
docker run -d --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 wurstmeister/zookeeper

这个Docker命令是用来启动一个名为"zookeeper"的容器,容器的镜像是"wurstmeister/zookeeper"。下面是对命令中各个参数的详细解释:

  • -d:表示将容器以后台模式运行,即在后台运行容器而不占用当前终端窗口。
  • –name zookeeper:指定容器的名称为"zookeeper",这个名称可以自定义。
  • -p 2181:2181:指定将容器的2181端口映射到主机的2181端口,这是Zookeeper的客户端端口。
  • -p 2888:2888:指定将容器的2888端口映射到主机的2888端口,这是Zookeeper的服务器之间通信的端口。
  • -p 3888:3888:指定将容器的3888端口映射到主机的3888端口,这是Zookeeper的选举端口。
  • wurstmeister/zookeeper:指定了容器的镜像,即使用"wurstmeister/zookeeper"镜像来创建容器。

通过运行这个Docker命令,你将在后台启动一个Zookeeper容器,并将其相关端口映射到主机的相应端口上,以便访问和使用Zookeeper服务。

# 进入容器
docker exec -it kafka bash

# 其他示例
docker run -d --name zookeeper -p 0.0.0.0:2181:2181 -p 0.0.0.0:2888:2888 -p 0.0.0.0:3888:3888 wurstmeister/zookeeper

2.1.3 启动 wurstmeister/kafka

docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=10.1.36.108 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka

以下是docker run命令中各个参数的详细说明:

-d:将容器设置为后台运行模式。

–name kafka:给容器命名为"kafka"。

–publish 9092:9092:将主机的9092端口映射到容器的9092端口,用于Kafka的通信。

–link zookeeper:将容器连接到名为"zookeeper"的另一个容器。

–env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181:设置环境变量KAFKA_ZOOKEEPER_CONNECT为"zookeeper:2181",指定Kafka连接到的Zookeeper的地址。

–env KAFKA_ADVERTISED_HOST_NAME=10.1.36.108:设置环境变量KAFKA_ADVERTISED_HOST_NAME为"10.1.36.108",指定Kafka广告的主机名,即Kafka对外公开的主机名。

–env KAFKA_ADVERTISED_PORT=9092:设置环境变量KAFKA_ADVERTISED_PORT为"9092",指定Kafka广告的端口号,即Kafka对外公开的端口号。

–volume /etc/localtime:/etc/localtime:将主机的/etc/localtime文件挂载到容器的/etc/localtime文件,用于设置容器的时区与主机相同。

wurstmeister/kafka:指定要使用的Kafka镜像。

这些参数用于在Docker中运行一个名为"kafka"的容器,并配置Kafka与Zookeeper的连接以及对外公开的主机名和端口号。

2.2 docker kafka 测试数据收发

2.2.1 docker kafka 测试数据收发

docker kafka 已运行,要测试Kafka的收发数据功能,可以按照以下详细步骤进行操作:

  1. 创建一个名为"test"的topic:
docker exec -it kafka kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
  1. 在一个终端窗口中,启动一个Kafka消费者来接收消息:
docker exec -it kafka kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092
  1. 在另一个终端窗口中,启动一个Kafka生产者来发送消息:
docker exec -it kafka kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
  1. 现在你可以在Kafka生产者的终端窗口中输入消息,并按下回车键发送。你会在消费者的终端窗口中看到接收到的消息。

这样,你就可以测试Kafka的收发数据功能了。记得在测试完成后,使用Ctrl+C来停止消费者和生产者的终端进程,并可以使用以下命令删除测试topic:

docker exec -it kafka kafka-topics.sh --delete --topic test --bootstrap-server localhost:9092

希望这些步骤和命令对你有帮助!如果有任何问题,请随时告诉我。

2.2.2 windows验证

windows上下载kafkatool,然后做验证:
在这里插入图片描述

三、嵌入式集成

在嵌入式 C/C++ 中集成 Kafka,有几个开源库可以使用。以下是其中一些常用的库:

  1. librdkafka:librdkafka 是一个功能强大且广泛使用的 C/C++ 客户端库,用于与 Kafka 集群进行通信。它提供了生产者和消费者的 API,支持高性能、低延迟的消息传递。

  2. libkafka:libkafka 是一个轻量级的 C++ 客户端库,用于与 Kafka 进行通信。它提供了生产者和消费者的 API,支持异步和同步消息传递。

  3. rdkafka:rdkafka 是 librdkafka 的 C++ 封装库,提供了更方便的 C++ 接口。它保持了 librdkafka 的高性能和稳定性,并提供了更易用的面向对象的编程接口。

这些库都是开源的,并且在大量项目中得到了广泛的使用和验证。你可以根据你的具体需求选择适合你的库,并参考它们的文档和示例代码以获取更多详细信息和用法示例。

四、kafka 原理

五、参考资料

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ubuntu 18.04 是一种操作系统,而 Docker 是一种容器化技术。在 Ubuntu 18.04 上安装 Docker 可以让用户更方便地管理和部署应用程序。Docker 可以将应用程序及其依赖项打包成一个容器,使其可以在任何地方运行,而不必担心环境差异和依赖项冲突的问题。在 Ubuntu 18.04 上使用 Docker,可以提高应用程序的可移植性和可靠性,同时也可以节省部署和维护的时间和成本。 ### 回答2: Ubuntu 18.04是一个流行的Linux操作系统版本,而Docker是一种开源的容器化平台。在Ubuntu 18.04上安装和使用Docker可以带来许多好处。 首先,Docker可以提供一个隔离的运行环境,使同时运行多个应用程序变得更加简单。通过容器化技术,应用程序和它们的依赖可以被打包在一个容器中,并在任何支持Docker的系统上运行,而不用担心运行环境的差异。这使得部署和迁移应用程序变得更加容易和灵活。 其次,Docker提供了轻量级和快速的应用程序部署方式。相比传统的虚拟化技术,Docker容器的启动和停止速度更快,资源消耗更低。这意味着开发人员可以更快速地进行应用程序的测试和部署,并且可以更有效地利用服务器的资源。 此外,Docker还提供了丰富的容器管理工具和生态系统。通过Docker Hub,开发人员可以方便地分享和获取各种容器镜像,加快了应用程序的开发和部署速度。同时,Docker还提供了广泛的命令行工具和API,使得容器的创建、配置和管理变得更加方便。 最后,Docker还支持自动化部署和扩展。通过使用Docker Compose和Docker Swarm等工具,可以轻松地编排和管理多个容器,实现应用程序的自动化部署和水平扩展。 总之,Ubuntu 18.04和Docker的结合提供了一个强大的开发和部署平台,使应用程序的开发、测试和部署变得更加快速、灵活和可靠。无论是开发人员还是系统管理员,都能从Ubuntu 18.04和Docker的组合中获得巨大的好处。 ### 回答3: Ubuntu 18.04是一个最新的稳定版本的Linux操作系统,而Docker是一个开源的容器化平台。下面是关于Ubuntu 18.04与Docker之间的相关内容。 首先是Ubuntu 18.04。它是由Canonical开发的一个免费的操作系统。它具有强大的性能和稳定性,并且支持广泛的硬件设备。Ubuntu 18.04的特点包括新的用户界面、改进的系统管理工具、强大的网络和安全功能等。它还提供了强大的软件库和应用商店,用户可以方便地安装和管理各种应用程序。 而Docker是一个开源的容器化平台,它可以帮助我们轻松地构建、部署和运行应用程序。Docker使用容器技术来隔离不同的应用程序和环境,从而实现更高效的资源利用和更简化的部署流程。Docker允许我们通过编写Dockerfile来定义容器的配置,然后使用Docker Engine来构建和运行容器Docker Hub是Docker的官方仓库,我们可以从这里获取和分享Docker镜像,而Docker Compose可以帮助我们管理多个容器应用。 在Ubuntu 18.04中安装Docker非常简单。我们只需要运行几个命令就可以完成安装过程。一旦安装完毕,我们就可以使用Docker命令来管理和操作容器。例如,我们可以使用"docker run"命令来运行一个容器,使用"docker ps"命令来查看正在运行的容器,使用"docker stop"命令来停止一个容器等等。 总结一下,在Ubuntu 18.04上安装和使用Docker非常方便。Ubuntu 18.04提供了强大的基础操作系统,而Docker则提供了灵活和高效的容器化平台。这两者可以相互结合,使我们能够更轻松地构建、部署和管理应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值