This makes perfect sense since there is already support in the API.
Unfortunately Eureka also uses that information to set the Server
zones by default (duh?!) - see DiscoveryClient.getZone(InstanceInfo),
so unless you aggressively update them, the zones will all be the same
in all servers.
I fixed that problem by unconditionally applying the "domain as zone"
guess algorithm, which is fine unless you actually want to use
the Amazon metadata. So that's an outstanding problem
See gh-30
The problem is pretty deep here so I hope I did something sane. Basically if
PeerAwareInstanceRegistry.openForTraffic(int) ever gets called with a 0 argument
it resets the threshold for numberOfRenewsPerMinThreshold to 0 from which
it only ever recovers if the same method is called again with a non-zero argument.
For a standalone server this means that it will never automatically expire
any leases (only when it chats to its neighbours and finds out they have
registered services will it ever switch the threshold back on).
Another problem (unsolved) is that the reset mechanism will kick back in
occasionally (resetting to 1 with this change, but that's probably also
a bad thing). And when there *are* actually peers to talk to unless they are
in AWS they will never communicate correctly about the actual number of local
services (the criteria for that are deeply connected with AWS and EIP).
Fixes gh-6