Why proxy instead of tribe nodes?


(Thomas Decaux) #1

Just wondering why there are HTTP proxies in front of data nodes, instead of tribe nodes ?

I was thinking this multi-cluster stuff is the right usage for Tribe.

Thanks you,


(Uri Cohen) #2

Hi Thomas

The role of the proxy in Elastic Cloud Enteprise is not to provide a unified view over multiple clusters (which is what tribe node does), but rather to abstract the client from the physical location of cluster nodes. In Cloud Enterprise, each cluster is assigned a virtual host name which contains the cluster ID for that cluster. The proxy maintains an internal routing table (which is based on the data that resides in ZooKeeper) and uses the cluster ID to route the request to specific hosts and from there to the Docker containers that run the actual cluster nodes.

When dealing with a large amount of clusters, this is useful as it allows Cloud Enterprise to do a number of things:

  • Move cluster nodes around and restart them in case their host fails, without it being noticeable to the client.
  • Easily block traffic to a running cluster when it's overwhelmed, needs to undergo maintenance, or taken out of service.
  • Enforce certain policies on API requests (e.g. disallow a certain API call), although we do not use this capability at this point
  • Centrally log all requests to the clusters it's managing which is very useful for troubleshooting and tracing issues

HTH
Uri


(Thomas Decaux) #3

Hello,

Thanks you for a such detailed answer. I see better now, Tribe is here to unify clusters (merge search results...) where as proxies not.

So it could be possible to put tribes behind proxy I guess ?

Thanks you,


(Uri Cohen) #4

If you mean connect a tribe node to multiple Elasticsearch clusters that are managed by Cloud Enterprise, then the answer is yes.


(system) #5

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.