poorbarcode opened a new pull request, #23129: URL: https://github.com/apache/pulsar/pull/23129
### Motivation **Background** So far, there are two implementations of `ServiceUrlProvider` - `ControlledClusterFailover`: call an HTTP API to change the pulsar service URL. - `AutoClusterFailover`: check the pulsar service URL by creating a socket, and automatically switch to the high-priority pulsar service URL. **Issue** - We build two clusters `c1` and `c2`, and start a binary-way replication between them. - Enabled `AutoClusterFailover` for our client to switch connections to the healthy cluster when the primary one can not work. - The network traffic is:`client -> proxy -> brokers` If all the brokers crash, the proxies are still healthy, `AutoClusterFailover` can not determine that the primary cluster can not provide service anymore. ### Modifications Add a new ServiceUrlProvider implementation: `SameAuthParamsAutoClusterFailover`, which uses `lookup topic` to check whether the target cluster is healthy or not. Since the clusters that enabled Geo-Replication always have the same auth settings, it can be easy to implement(skipping the different auth settings ). ### Documentation <!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. --> - [ ] `doc` <!-- Your PR contains doc changes. --> - [ ] `doc-required` <!-- Your PR changes impact docs and you will update later --> - [x] `doc-not-needed` <!-- Your PR changes do not impact docs --> - [ ] `doc-complete` <!-- Docs have been already added --> ### Matching PR in forked repository PR in forked repository: x -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
