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 > > >