I think you might be looking for events. https://ignite.apache.org/docs/latest/events/listening-to-events#enabling-events https://ignite.apache.org/docs/latest/events/events#cluster-state-changed-events
On Fri, Aug 23, 2024 at 11:59 AM Gregory Sylvain <[email protected]> wrote: > 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 <[email protected]> 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 <[email protected]> >> 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 >>> >>> >>> >>> [email protected] >>> >>> cell: 571.236.8951 >>> >>> ofc: 703.633.3195 >>> >>> Chantilly, VA >>> >>> >>> >>
