Pulsar isolation

在组织上,一个Pulsar实例为多个群组提供服务。 在跨多群众组织资源时,你可能想避免与不同群组及应用之间竞争资源,想获得优质的消息服务,此时需要制定恰当的隔离策略。 在这种场景下,你需要将资源隔离考虑进来,并权衡你计划执行的方案是否能涵盖所有场景。

为了实现资源隔离,你可以使用Pulsar隔离策略,可分配命名空间的资源资源 (broker and bookie) 。

Broker隔离

Pulser命名空间(或命名空间bundles) 是动态分配给broker的,命名空间隔离策略限制了broker的配置。 在把topic负载到broker之前,命名空间的隔离策略可以设置为正则表达式,用来匹配指定的broker。

也可以用如下方法设置集群的命名空间隔离策略:

Admin CLI

REST API

Java admin API

  1. pulsar-admin ns-isolation-policy set options

获取命令的更多信息 pulsar-admin ns-isolation-policy set options, 点击 此处.

示例

  1. bin/pulsar-admin ns-isolation-policy set \--auto-failover-policy-type min_available \--auto-failover-policy-params min_limit=1,usage_threshold=80 \--namespaces my-tenant/my-namespace \--primary 10.193.216.* my-cluster policy-name

PUT /admin/v2/namespaces/{tenant}/{namespace}

使用 Java admin API设置命名空间隔离策略, 点击 此处.

Bookie 隔离

Bookies的用户定义群组也可使用命名空间隔离,用来保证该命名空间下的数据存储在指定的bookies中。 Bookie亲和组使用 BookKeeper 机柜感知存储策略 返回存储在Znode中JSON格式的机柜信息。

您可以使用以下方法之一设置一个bookie亲和组。

Admin CLI

REST API

Java admin API

  1. pulsar-admin namespaces set-bookie-affinity-group options

获取命令的更多信息 pulsar-admin ns-isolation-policy set options, 点击 此处.

示例

  1. bin/pulsar-admin bookies set-bookie-rack \--bookie 127.0.0.1:3181 \--hostname 127.0.0.1:3181 \--group group-bookie1 \--rack rack1bin/pulsar-admin namespaces set-bookie-affinity-group public/default \--primary-group group-bookie1

POST /admin/v2/namespaces/{tenant}/{namespace}/persistence/bookieAffinity

使用Java admin API设置命名空间隔离策略, 点击此处.