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的表现插件