目录

1、Advertised listeners 侦听器

2、Use multiple advertised listeners 使用多广播侦听器


当你在 K8s 中部署了一个 Plusar 集群,同时想让其他客户端也连接到这个集群,但是这些客户端并没有在相同的 K8s 集群中,此时,你需要将 broker 的 url 地址分配给这些外部的客户端。如果本身就在相同 K8s 集群中的客户端,仍然可以通过 K8s 的内部网络进行连接。// 监听器的作用

1、Advertised listeners 侦听器

        为了确保内部和外部网络中的客户端都可以连接到 Pulsar 群集,Pulsar 在 broker 配置文件中提供了 advertisedListeners 和 internalListenerName 两个配置选项,用来确保 broker 支持多个已发布的侦听器,并支持内部和外部网络流量的分流。// 侦听器用来支持外部连接

  • advertisedListeners 用于指定多个侦听器。broker 在负载管理和数据绑定中把侦听器作为broker 的标识符。advertisedListeners 的格式为:
<listener_name>:pulsar://<host>:<port>, <listener_name>:pulsar+ssl://<host>:<port>.

        您可以设置 advertisedListeners ,如:

advertisedListeners=internal:pulsar://192.168.1.11:6660,internal:pulsar+ssl://192.168.1.11:6651
  • internalListenerName 用于指定 broker 内部服务使用的 url。你可以从多个侦听器中选择一个侦听器来指定 internalListenerName。如果没有指定 internalListenerName,broker 将使用第一个侦听器的名称作为 internalListenerName。// 其实就是指定内网的侦听器,如果不指定,默认使用第一个侦听器

客户端就可以选择其中一个侦听器作为服务 url 来创建到 broker 的连接。但是,如果客户端为一个主题创建生产者或消费者时,那么客户端首先必须向 broker 发送一个查找请求,用来获取为该主题提供服务的 broker ,然后,才能连接到指定的 broker 发布和消费消息。因此,你必须要允许客户端能够使用自己的侦听器名称获取得到 broker 服务的 url(侦听器名称和客户端的侦听器名称一样),这有助于保持客户端的简单性和安全性。// 客户端连接到 broker ,首先要发送查找请求

2、Use multiple advertised listeners 使用多广播侦听器

        下边示例展示 Pulsar 客户端如何使用多播侦听器。在 broker 配置文件中配置多个多播侦听器:

advertisedListeners={listenerName}:pulsar://xxxx:6650,
{listenerName}:pulsar+ssl://xxxx:6651

        创建客户端时,为客户端指定监听器名字:

PulsarClient client = PulsarClient.builder()
    .serviceUrl("pulsar://xxxx:6650")
    .listenerName("external")
    .build();

        至此,多播监听器介绍完毕。