Hi, Thanks for the reply.
I was looking down this road, however, everything is automated and the cluster is activated by a script when all ServerNodes are in the baseline. Is there a hook that can be called when the cluster is activated to do this work? Thanks. Greg On Fri, Aug 23, 2024 at 12:29 PM Jeremy McMillan <j...@gridgain.com> wrote: > The example in the documentation explaining nodeFilter uses node > attributes as a condition, but the logic might include dynamic node state > like performance metrics to decide whether to run a service or not. > > It seems like the behavior you want/expect might be implemented better > using clusterGroup > https://ignite.apache.org/docs/2.15.0/services/services#clustergroup > > You would need to do something like ( > https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cluster/ClusterGroup.html > ) > > // Cluster group over all nodes that have the user attribute "group" set to > the value "worker". > ClusterGroup workerNodes = cluster.forAttribute("group", "worker"); > > .. and then start services with this > > https://ignite.apache.org/releases/2.15.0/javadoc/org/apache/ignite/IgniteSpringBean.html#services-org.apache.ignite.cluster.ClusterGroup- > > On Fri, Aug 23, 2024 at 8:35 AM Gregory Sylvain <greg.sylv...@ieee.org> > wrote: > >> Hi Igniters, >> >> I'm running Ignite 2.15 cluster with native persistence enabled running >> on RHEL 8 VMs. >> >> I am running a Service cluster of 5 ServerNodes and 32 Thick Clients. >> >> Each Service has a User Attribute that indicates which service to run. >> Each ServerNode sets two User Attributes - indicating it should run two >> services. >> >> When the Cluster starts up from nothing, it sets the BLT and starts all >> services as expected. >> >> After the BLT is set, the cluster ports are opened (via firewalld) to >> allow the clients to connect to the cluster and start utilizing the >> services offered. >> >> If, after this point, a BLT cluster node restarts and drops out of the >> cluster and then re-joins, the Node Filter's apply() method is invoked on >> all ServerNodes *and *Thick Clients! >> >> >> - Q1: Why is a Node Filter running on a Thick Client and can I >> disable this? >> >> >> So, if a Node Filter is invoked on a Thick Client and it gets passed a >> ClusterNode representing a ServerNode that should run a specific service, >> the filter should return *true*, according to the API. However, I do >> not want Clients to run services. >> >> >> >> - Q2: Can I limit the Node Filter invocations to only BLT nodes (or >> at least only Server Nodes) ? >> - Q3: If Node Filters are intended to run on Thick Clients as well, >> can I just return false from the apply method and how does that affect the >> semantics of service balancing that I am trying to achieve? >> >> >> >> >> Thanks in advance, >> Greg >> >> >> -- >> >> *Greg Sylvain* >> >> Software Architect/Lead Developer on XOComm >> >> Booz | Allen | Hamilton >> >> >> >> sylvain_greg...@bah.com >> >> cell: 571.236.8951 >> >> ofc: 703.633.3195 >> >> Chantilly, VA >> >> >> >