Hi Boban, First of all: I agree with Walter here. Because the bottleneck is during indexing on the leader, a basic round robin load balancer will perform just as well as a custom solution. With far less headache. A custom solution will be far more work than it's worth.
But, should you really want to write this yourself, you can get all of the information you need from zookeeper, from the path: <zkroot>/collections/<collection_name>/state.json There, for each shard you'll see: - the "range" parameter that tells you which subset of documents this shard is responsible for (see https://lucene.apache.org/solr/guide/7_6/shards-and-indexing-data-in-solrcloud.html#document-routing for details on routing) - the list of all replicas. On each replica it will tell you: - the host name (base_url) - if it is the leader (has the property leader: true) So your go-based solution would be to watch the state.json file from zookeeper, and build up a function that, given the proper routing structure for your document (the hash of the id by default, I think) will return the hostname of the replica that's the leader. Kyle On Mon, 11 Feb 2019 at 13:30, Boban Acimovic <b...@it-agenten.com> wrote: > Like I said before, nginx is not a load balancer or at least not a clever > load balancer. It does not talk to ZK. Please give me advanced solutions. > > > > > > On 11. Feb 2019, at 18:32, Walter Underwood <wun...@wunderwood.org> > wrote: > > > > I haven’t used Kubernetes, but a web search for “helm nginx” seems to > give some useful pages. > > > > wunder > > Walter Underwood > > wun...@wunderwood.org > > http://observer.wunderwood.org/ (my blog) > > > >> On Feb 11, 2019, at 9:13 AM, Davis, Daniel (NIH/NLM) [C] < > daniel.da...@nih.gov> wrote: > >> > >> I think that the container orchestration framework takes care of that > for you, but I am not an expert. In Kubernetes, NGINX is often the Ingress > controller, and as long as the services are running within the Kubernetes > cluster, it can also serve as a load balancer, AFAICT. In Kubernetes, a > "Load Balancer" appears to be a concept for accessing services outside the > cluster. > >> > >> I presume you are using Kubernetes because of your reference to helm, > but for what it's worth, here's an official haproxy image - > https://hub.docker.com/_/haproxy >