Janus is a client-side load balancing Java library which includes support for HTTP (sync and async) and WebSockets.  It includes several service discovery strategies as well as several load balancing strategies.