Pulsar 2.4 CentOS 7.3 安装及使用

本文详细介绍了如何在CentOS 7.3上安装Apache Pulsar 2.4,包括Maven和Gradle的配置方法,以及连接URL、生产者和消费者配置、消息路由、异步发送等功能的使用。此外,还涉及到TLS身份验证和Athenz认证的配置示例。
摘要由CSDN通过智能技术生成

下载安装包

http://pulsar.apache.org/en/download/

使用tar -zxvf解压下载的资源包,目录结构如下

显示目录:

本地单点运行,使用命令./pulsar standalone 即可,这里使用默认配置,暴露端口为6650

测试消息

发送消息 命令

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

结果

接收消息

  ./pulsar-client consume my-topic -s "first-subscription"

 

Maven的

如果您使用的是Maven,请将其添加到您的pom.xml

<!-- in your <properties> block -->
<pulsar.version>2.4.0</pulsar.version>

<!-- in your <dependencies> block -->
<dependency>
  <groupId>org.apache.pulsar</groupId>
  <artifactId>pulsar-client</artifactId>
  <version>${pulsar.version}</version>
</dependency>

复制

摇篮

如果您使用的是Gradle,请将其添加到您的build.gradle文件中:

def pulsarVersion = '2.4.0'

dependencies {
    compile group: 'org.apache.pulsar', name: 'pulsar-client', version: pulsarVersion
}

复制

连接URL

要使用客户端库连接到Pulsar,您需要指定Pulsar协议 URL。

Pulsar协议URL分配给特定的集群,使用该pulsar方案并具有6650的默认端口。以下是一个示例localhost

pulsar://localhost:6650

复制

如果您有多个代理,则URL可能如下所示:

pulsar://localhost:6550,localhost:6651,localhost:6652

复制

生产Pulsar集群的URL可能如下所示:

pulsar://pulsar.us-west.example.com:6650

复制

如果您正在使用TLS身份验证,则URL将如下所示:

pulsar+ssl://pulsar.us-west.example.com:6651

复制

客户端配置

您可以 仅使用目标Pulsar 集群的URL 来实例化PulsarClient对象,如下所示:

PulsarClient client = PulsarClient.builder()
        .serviceUrl("pulsar://localhost:6650")
        .build();

复制

如果你有多个经纪人,你可以像这样启动一个PulsarClient:

PulsarClient client = PulsarClient.builder()
        .serviceUrl("pulsar://localhost:6650,localhost:6651,localhost:6652")
        .build();

复制

独立群集的默认代理URL

如果您在独立模式下运行群集,pulsar://localhost:6650默认情况,代理将在URL 处可用。

查看PulsarClient 类的Javadoc以获取可配置参数的完整列表。

除了客户端级别的配置,您还可以应用生产者消费者特定的配置,如下面的部分所示。

生产者

在Pulsar中,制作人将信息写入主题。一旦您实例化了PulsarClient 对象(如上节所述),您就可 以为特定的Pulsar 主题创建一个Producer

Producer<byte[]> producer = client.newProducer()
        .topic("my-topic")
        .create();

// You can then send messages to the broker and topic you specified:
producer.send("My message".getBytes());

复制

默认情况下,生成器生成由字节数组组成的消息。但是,您可以通过指定消息架构来生成不同类型。

Producer<String> stringProducer = client.newProducer(Schema.STRING)
        .topic("my-topic")
        .create();
stringProducer.send("My message");

复制

您应该始终确保在不再需要时关闭您的生产者,消费者和客户:

producer.close();
consumer.close();
client.close();

复制

关闭操作也可以是异步的:

producer.closeAsync()
   .thenRun(() -> System.out.println(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值