If Eureka client doesn't register itself with the eureka server by setting eureka: client: registerWithEureka: false, why does fetchRegistry property also needs to be set as false?
registerWithEureka
controls whether or not this client registers itself and therefore becomes discoverable. This alone does not imply that this client is going to fetch the information on other services' endpoints and therefore being able to connect to them.
fetchRegistry
controls whether or not this client is going to try to connect to the Eureka server(s) in order to download the information on other services' endpoint. It can do so without registering itself.
Quoting the documentation:
Fetch Registry
Eureka clients fetches the registry information from the server and caches it locally. After that, the clients use that information to find other services.