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

Reply via email to