Pulsar的受權須要開啓認證,且須要單獨在Broker和Proxy的配置中開啓,不然全部認證經過後的用戶角色將對全部資源有權限,如未開啓認證則全部客戶端對全部資源有權限;受權也支持插件化擴展機制,但使用自帶的實現就能夠知足需求了。此外還能夠配置超級用戶角色和代理角色,對於集羣的管理和Proxy訪問等很是有用。apache
以前咱們在 Pulsar學習筆記之 Authentication認證機制與插件開發 文章中介紹了Pulsar的認證機制和認證插件的開發,有須要能夠移步過去看認證插件的配置,也可使用官方推薦的認證插件。segmentfault
# broker.conf authorizationEnabled=true authorizationProvider=org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider superUserRoles=user-role-123456 proxyRoles=pulsar_proxy_role_1
開啓受權後,認證經過的用戶角色默認是沒有任何權限的,須要事先建立租戶/命名空間,並給用戶角色作受權。ide
bin/pulsar-admin tenants create my-tenant bin/pulsar-admin namespaces create my-tenant/my-namespace bin/pulsar-admin namespaces grant-permission my-tenant/my-namespace \ --actions lookup,produce,consume \ --role userrole-123457
AuthenticationTabaltAK at = new AuthenticationTabaltAK("test_access_key2", "test_access_secret"); //... Producer<byte[]> producer = client.newProducer() .topic("my-tenant/my-namespace/my-topic") .create();
Pulsar resource-quotas 資源配額 用於限制命名空間級別的出入消息速率、帶寬等學習
bin/pulsar-admin resource-quotas set \ --memory 20 \ --msgRateIn 2 \ --msgRateOut 20 \ --bandwidthIn 2 \ --bandwidthOut 20 \ --bundle "0x00000000_0x40000000" \ --namespace "my-tenant/my-namespace" bin/pulsar-admin namespaces policies my-tenant/my-namespace bin/pulsar-admin resource-quotas reset-namespace-bundle-quota \ --bundle "0x00000000_0x40000000" \ --namespace "my-tenant/my-namespace"
bin/pulsar-admin namespaces set-backlog-quota "my-tenant/my-namespace" \ --limit 100 \ --policy producer_exception / producer_request_hold / consumer_backlog_eviction bin/pulsar-admin namespaces policies my-tenant/my-namespace
限制backlog的大小能夠生效,同時有一些「小特色」,但影響不大spa
3種policy的表現插件