Service Grid allows for deployments of arbitrary user-defined services on the cluster. You can implement and deploy any service, such as custom counters, ID generators, hierarchical maps, etc.
Ignite allows you to control how many instances of your service should be deployed on each cluster node and will automatically ensure proper deployment and fault tolerance of all the services .
- Continuous availability of deployed services regardless of topology changes or crashes.
- Automatically deploy any number of distributed service instances in the cluster.
- Automatically deploy singletons, including cluster-singleton, node-singleton, or key-affinity-singleton.
- Automatically deploy distributed services on node start-up by specifying them in the configuration.
- Undeploy any of the deployed services.
- Get information about service deployment topology within the cluster.
- Create service proxy for accessing remotely deployed distributed services.
Please refer to Service Example for information on service deployment and accessing service API.
All service grid functionality is available via
Ignite ignite = Ignition.ignite(); // Get services instance spanning all nodes in the cluster. IgniteServices svcs = ignite.services();
You can also limit the scope of service deployment to a Cluster Group. In this case, services will only span the nodes within the cluster group.
Ignite ignite = Ignitition.ignite(); ClusterGroup remoteGroup = ignite.cluster().forRemotes(); // Limit service deployment only to remote nodes (exclude the local node). IgniteServices svcs = ignite.services(remoteGroup);
In all cases, other than singleton service deployment, Ignite will automatically make sure that about an equal number of services are deployed on each node within the cluster. Whenever cluster topology changes, Ignite will re-evaluate service deployments and may re-deploy an already deployed service on another node for better load balancing.
Ignite always guarantees that services are continuously available, and are deployed according to the specified configuration, regardless of any topology changes or node crashes.