The update router would also need to look for failures indexing at each leader,
then re-read the cluster state to see if the leader had changed. Also re-send 
any
failed updates, and so on.

wunder
Walter Underwood
wun...@wunderwood.org
http://observer.wunderwood.org/  (my blog)

> On Feb 11, 2019, at 11:07 AM, lstusr 5u93n4 <lstusr...@gmail.com> wrote:
> 
> 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
>> 

Reply via email to