кажется проще применять синюю изоленту и не париться:
1) вытащить из OperatingSystemMXBean состояние CPU 2) выгрузить его через Spring Boot Metrics или Http Management 3) на клиенте расширить класс Риббон‑Эврика‑Балансера (или навелосипедить свой скорее), впихать ему правило ранжировать вначале по roundrobin/latency, потом по CPU, если доля CPU слишком велика 4) инфу по инстансам хранить в кэше...
... (guava LoadingCache? а может, расширить InstanceInfo Эврики?) 5) запатчить JMSTeamplate по полной аналогии с RESTTemplate из SpringCloud 6) посмотреть, надо ли что‑то запатчить в Hystrix ... 6) PROFIT!