+1 Thank you!

On 2023/10/12 15:00:35 Diego Salvi wrote:
> Hi Pulsar Community,
> 
> This is a PIP discussion on how support custom DNSes configuration to be
> used by the Pulsar Client.
> 
> This is the PIP issue https://github.com/apache/pulsar/pull/21352
> 
> # Motivation
> 
> Currently Pulsar client levereage on JVM detected DNSes or on Google DNSes
> if nothing was found (as per Netty default). You cannot change which DNSes
> use to resolve hostnames but you are forced to use local server one (like
> DNSes configured through resolv.conf or similar ways) or leverage on some
> Netty "black magic" system properties.
> 
> The ability to directly configure which DNSes use is strictly necessary in
> environment with "specialized" DNSes.
> 
> # Goals
> 
> ## In Scope
> 
> Add a new configuration on Pulsar client to explicitly set which DNSes use.
> 
> ## Out of Scope
> 
> Fully configure DNS layer, properties, timeouts etcetera.
> 
> 
> # High Level Design
> 
> A new client configuration will be added to list wich DNSes use. Such
> configuration will be checked when creating Pulsar clients to instantiate
> the DNS resolver.
> If no configuration is provided the client must use current defaults.
> 
> 
> # Detailed Design
> 
> ## Design & Implementation Details
> 
> The new configuration will be read from
> org.apache.pulsar.client.impl.ConnectionPool to configure a
> DnsNameResolverBuilder
> 
> ## Public-facing Changes
> Add new dnsServerAddresses method on
> org.apache.pulsar.client.api.ClientBuilder.
> 
> There are no breaking changes, if dnsServerAddresses is not configuret
> Pulsar will continue to behave like now.
> 
> 
> ### Public API
> 
> NA
> 
> ### Binary protocol
> 
> NA
> 
> ### Configuration
> 
> Add new dnsServerAddresses property on
> org.apache.pulsar.client.impl.conf.ClientConfigurationData.
> 
> ### CLI
> 
> NA
> 
> ### Metrics
> 
> NA
> 
> # Monitoring
> 
> NA
> 
> # Security Considerations
> 
> The client will have the ability to use a different seto of DNSes. It is
> possible to alter hostnames resolutions however it is expected that this
> does not pose any security risks.
> 
> # Backward & Forward Compatibility
> 
> ## Revert
> 
> Just remove dnsServerAddresses configuration
> 
> ## Upgrade
> 
> Configure a dnsServerAddresses server list. The configuration is not
> mandatory, Pulsar can run without it just like before.
> 
> # Alternatives
> 
> Expose an interface builder to fully configure the DNS layer. It has much
> more impact and conflict with existing configuration properties
> dnsLookupBindAddress and dnsLookupBindPort.
> 
> Diego Salvi
> 

Reply via email to