服务器 > 服务器 > 云虚拟主机

Docker中安装和配置Apache Pulsar实现

27人参与 2025-02-14 云虚拟主机

1. 安装docker和docker compose

确保您的系统中已安装docker和docker compose。如果还没有安装,可以参考以下链接进行安装:

2. 拉取pulsar镜像

pulsar的官方docker镜像可以通过docker hub获取。首先,拉取最新的pulsar镜像:

docker pull apache/pulsar

3. 创建pulsar的docker compose文件

为了更容易管理和启动多个服务,建议使用docker compose。创建一个名为 docker-compose.yml 的文件,内容如下:

version: '3'  # 使用的docker compose版本

services:
  # pulsar 服务定义,负责消息传递的主要工作
  pulsar:
    image: apache/pulsar  # 使用官方的pulsar镜像
    environment:
      # 配置jvm内存大小
      - pulsar_mem="-xms2g -xmx2g"  # 设置pulsar的堆内存大小
      # 设置pulsar的租户和集群名称
      - pulsar_tenant=public  # 设置默认的租户
      - pulsar_cluster=standalone  # 设置集群名称为"standalone"
      # 配置zookeeper服务的地址,pulsar依赖zookeeper来管理集群元数据
      - pulsar_zookeeper_servers=zookeeper:2181  # 指定zookeeper的服务地址
      # 配置pulsar的客户端、http、管理服务端口
      - pulsar_broker_service_port=6650  # pulsar的客户端服务端口
      - pulsar_http_service_port=8080  # pulsar的http接口服务端口(用于web ui)
      - pulsar_management_service_port=8090  # pulsar的管理接口服务端口
    ports:
      # 绑定本地端口到容器端口
      - "6650:6650"  # 映射pulsar客户端连接端口
      - "8080:8080"  # 映射web ui端口(用于访问pulsar dashboard)
      - "8090:8090"  # 映射管理接口端口
    depends_on:
      # pulsar依赖于zookeeper和bookkeeper服务启动
      - zookeeper
      - bookkeeper
    command: >
      bin/pulsar standalone  # 启动pulsar的standalone模式(适合单机部署)
    networks:
      - pulsar-net  # 使用名为pulsar-net的网络

  # zookeeper 服务定义,pulsar集群的协调服务
  zookeeper:
    image: wurstmeister/zookeeper  # 使用wurstmeister提供的zookeeper镜像
    environment:
      - zookeeper_client_port=2181  # zookeeper的客户端连接端口
    ports:
      - "2181:2181"  # 映射zookeeper客户端连接端口
    networks:
      - pulsar-net  # 同样使用pulsar-net网络,以便服务之间通信

  # bookkeeper 服务定义,pulsar的持久化存储
  bookkeeper:
    image: apache/pulsar  # 使用pulsar官方镜像,因为bookkeeper是pulsar的一部分
    environment:
      - pulsar_mem="-xms2g -xmx2g"  # 设置bookkeeper的jvm内存大小
      - pulsar_zookeeper_servers=zookeeper:2181  # 配置zookeeper地址(bookkeeper也需要zookeeper来协调)
      - pulsar_metrics_provider=org.apache.pulsar.broker.pulsarmetricsprovider  # 配置性能度量提供者
    depends_on:
      # bookkeeper依赖于zookeeper服务启动
      - zookeeper
    networks:
      - pulsar-net  # 同样使用pulsar-net网络

# 定义网络
networks:
  pulsar-net:
    driver: bridge  # 使用桥接网络驱动程序,确保容器能够相互通信

这个docker-compose.yml文件定义了三个服务:

注释解释:

运行时步骤:

4. 启动pulsar集群

docker-compose.yml文件所在的目录中执行以下命令启动pulsar集群:

docker-compose up -d

这个命令会拉取镜像并启动pulsar、zookeeper和bookkeeper服务。

5. 验证pulsar集群是否正常运行

您可以通过以下命令检查docker容器的运行状态:

docker-compose ps

如果所有容器的状态是“up”,则表示服务已经成功启动。

6. 访问pulsar web ui(可选)

pulsar提供了一个web ui界面,可以用于管理和查看集群状态。您可以通过访问 http://localhost:8080 来查看pulsar的web控制台。

7. 使用pulsar命令行客户端进行测试

您可以使用pulsar提供的命令行工具测试集群是否正常工作。首先进入pulsar容器:

docker exec -it <pulsar_container_id> bash

然后,您可以使用pulsar-client命令来发送和接收消息。例如,发送一个简单的消息:

bin/pulsar-client produce my-topic --messages "hello pulsar"

接收消息:

bin/pulsar-client consume my-topic -n 1

8. 配置多节点pulsar集群

对于生产环境,您可能需要配置多节点pulsar集群。在此情况下,您需要:

对于多节点集群配置,您需要在docker-compose.yml中配置不同的节点,并设置正确的环境变量。也可以在多个主机上部署容器实例。

9. 配置pulsar客户端连接

在客户端应用中,您需要使用pulsar的客户端连接到您的pulsar集群。以下是c#客户端代码示例,使用apache pulsar c#客户端库:

using pulsar.client;

class program
{
    static async task main(string[] args)
    {
        var client = await pulsarclient.createasync(new clientconfiguration
        {
            serviceurl = "pulsar://localhost:6650"
        });

        var producer = await client.newproducer()
            .topic("my-topic")
            .createasync();

        await producer.sendasync(encoding.utf8.getbytes("hello pulsar"));

        var consumer = await client.newconsumer()
            .topic("my-topic")
            .subscriptionname("my-subscription")
            .subscribeasync();

        var message = await consumer.receiveasync();
        console.writeline(encoding.utf8.getstring(message.data));

        await client.closeasync();
    }
}

10. 清理和停止pulsar集群

如果您需要停止并清理pulsar集群,可以运行:

docker-compose down

总结

使用docker部署pulsar集群非常适合开发和测试环境。通过上述步骤,您可以快速搭建一个单节点或多节点的pulsar集群,并使用web ui、命令行客户端或编程接口进行消息传递。

到此这篇关于docker中安装和配置apache pulsar实现的文章就介绍到这了,更多相关docker安装配置apache pulsar内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

docker run命令的使用小结

02-14

如何使用Docker部署最新版JupyterHub

02-14

Docker 端口映射与容器互联的实现

02-14

解决docker容器设置DNS不生效的问题

02-14

如何在一台服务器上使用docker运行kafka集群

02-14

docker-compose部署coredns如何实现自建DNS服务

02-14

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论