tencent cloud

文档反馈

下载并运行 Demo

最后更新时间:2024-01-03 14:12:49

    操作场景

    该任务指导您在购买 TDMQ Pulsar 版服务和腾讯云服务器后,下载 Demo 并进行简单的测试,了解运行一个客户端的操作步骤。
    说明:
    本示例以 Java 客户端为例说明,其他语言客户端请参见 SDK 文档

    前提条件

    操作步骤

    1. 下载 Demo(Demo 下载地址),并配置相关参数。
    关于 Maven 依赖:
    pom.xml 文件中的依赖是按照 Pulsar 的官方依赖进行配置的,详情可以参见 其官方文档
    <!-- in your <properties> block -->
    <pulsar.version>2.7.2</pulsar.version>
    <!-- in your <dependencies> block -->
    <dependency>
    <groupId>org.apache.pulsar</groupId>
    <artifactId>pulsar-client</artifactId>
    <version>${pulsar.version}</version>
    </dependency>
    创建 Client。
    2.7.1版本及以上集群接入示例
    2.6.1版本集群接入示例
    // 一个Pulsar client对应一个客户端链接
    // 原则上一个进程一个client,尽量避免重复创建,消耗资源
    // 关于客户端和生产消费者的最佳实践,可以参考官方文档 https://www.tencentcloud.com/document/product/1179/58090?from_cn_redirect=1
    
    PulsarClient client = PulsarClient.builder()
    //替换成集群接入地址,位于【集群管理】页面接入地址
    .serviceUrl("http://pulsar-..tencenttdmq.com:8080")
    //替换成角色密钥,位于【角色管理】页面
    .authentication(AuthenticationFactory.token("eyJr"))
    .build();
    
    System.out.println(">> pulsar client created.");
    serviceUrl 即接入地址,可以在控制台 集群管理 页面查看并复制。
    
    
    token 即角色的密钥,角色密钥可以在角色管理中复制。
    注意:
    密钥泄露很可能导致您的数据泄露,请妥善保管您的密钥。
    
    PulsarClient client = PulsarClient.builder()
    .serviceUrl("pulsar://...:6000/")//接入地址到集群管理-接入点列表完整复制
    .listenerName("custom:pulsar-/vpc-/subnet-")//custom:替换成路由ID,位于**集群管理**接入点列表
    .authentication(AuthenticationFactory.token("eyJr"))//替换成角色密钥,位于**角色管理**页面
    .build();
    System.out.println(">> pulsar client created.");
    serviceUrl 即接入地址,可以在控制台 集群管理 接入点页面查看并复制。
    listenerName 即 “custom:” 拼接路由 ID(NetModel),路由 ID 可以在控制台 集群管理 接入点页面查看并复制。
    token 即角色的密钥,角色密钥可以在角色管理中复制。
    注意:
    密钥泄露很可能导致您的数据泄露,请妥善保管您的密钥。
    
    创建消费者进程。
    Consumer<byte[]> consumer = client.newConsumer()
    //topic完整路径,格式为persistent://集群(租户)ID/命名空间/Topic名称,从【Topic管理】处复制
    .topic("persistent://pulsar-****/namespace/topicName")
    //需要在控制台Topic详情页创建好一个订阅,此处填写订阅名
    .subscriptionName("subscriptionName")
    //声明消费模式为exclusive(独占)模式
    .subscriptionType(SubscriptionType.Exclusive)
    //配置从最早开始消费,否则可能会消费不到历史消息
    .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest)
    .subscribe();
    System.out.println(">> pulsar consumer created.");
    说明:
    Topic 名称需要填入完整路径,即“persistent://clusterid/namespace/Topic”,clusterid/namespace/topic 的部分可以从控制台上 Topic 管理 页面直接复制。
    
    
    subscriptionName 需要写入订阅名,可在消费管理界面查看。
    创建生产者进程。
    Producer<byte[]> producer = client.newProducer()
    //topic完整路径,格式为persistent://集群(租户)ID/命名空间/Topic名称
    .topic("persistent://pulsar-****/namespace/topicName")
    .create();
    System.out.println(">> pulsar producer created.");
    说明:
    Topic 名称需要填入完整路径,即“persistent://clusterid/namespace/Topic”,clusterid/namespace/topic 的部分可以从控制台上 Topic 管理 页面直接复制。
    生产消息
    for (int i = 0; i < 5; i++) {
    String value = "my-sync-message-" + i;
    //发送消息
    MessageId msgId = producer.newMessage().value(value.getBytes()).send();
    System.out.println("deliver msg " + msgId + ",value:" + value);
    }
    //关闭生产者
    producer.close();
    消费消息
    for (int i = 0; i < 5; i++) {
    //接收当前offset对应的一条消息
    Message<byte[]> msg = consumer.receive();
    MessageId msgId = msg.getMessageId();
    String value = new String(msg.getValue());
    System.out.println("receive msg " + msgId + ",value:" + value);
    //接收到之后必须要ack,否则offset会一直停留在当前消息,无法继续消费
    consumer.acknowledge(msg);
    }
    2. pom.xml 所在目录执行命令 mvn clean package,或者通过 IDE 自带的功能打包整个工程,在 target 目录下生成一个可运行的 jar 文件。
    
    3. 运行成功后将 jar 文件上传到云服务器,具体操作参见 如何将本地文件拷贝到云服务器
    4. 登录云服务器,进入到刚刚上传 jar 文件所在的目录,可看到文件已上传到云服务器。
    
    
    
    执行命令 java -jar tdmq-demo-1.0.0.jar,运行 Demo,可查看运行日志。
    
    
    
    5. 登录 TDMQ Pulsar 版控制台,依次点击 Topic 管理 > Topic 名称进入消费管理页面,点开订阅名下方右三角号,可查看生产消费记录。
    6. 进入 消息查询 页面,可查看 Demo 运行后的消息轨迹。
    说明:
    消息轨迹的查询只支持单条消息,如果用户在 Producer 侧开启了 Batch 功能,则在消息查询中,同一个 Batch 的消息只可以查询到 Batch 中的第一条消息。
    
    
    
    消息轨迹如下:
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持