Class ServiceConfiguration
- java.lang.Object
-
- org.apache.ignite.services.ServiceConfiguration
-
- All Implemented Interfaces:
Serializable
public class ServiceConfiguration extends Object implements Serializable
Managed service configuration. In addition to deploying managed services by calling any of the provideddeploy(...)
methods, managed services can also be automatically deployed on startup by specifying them inIgniteConfiguration
like so:IgniteConfiguration gridCfg = new IgniteConfiguration(); GridServiceConfiguration svcCfg1 = new GridServiceConfiguration(); svcCfg1.setName("myClusterSingletonService"); svcCfg1.setMaxPerNodeCount(1); svcCfg1.setTotalCount(1); svcCfg1.setService(new MyClusterSingletonService()); GridServiceConfiguration svcCfg2 = new GridServiceConfiguration(); svcCfg2.setName("myNodeSingletonService"); svcCfg2.setMaxPerNodeCount(1); svcCfg2.setService(new MyNodeSingletonService()); gridCfg.setServiceConfiguration(svcCfg1, svcCfg2); ... Ignition.start(gridCfg);
The above configuration can also be specified in a Spring configuration file.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected Object
affKey
Affinity key.protected String
cacheName
Cache name.protected ServiceCallInterceptor[]
interceptors
Interceptor.protected boolean
isStatisticsEnabled
Enables or disables service statistics.protected int
maxPerNodeCnt
Max per-node count.protected String
name
Service name.protected IgnitePredicate<ClusterNode>
nodeFilter
Node filter.protected int
totalCnt
Total count.
-
Constructor Summary
Constructors Constructor Description ServiceConfiguration()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
boolean
equalsIgnoreNodeFilter(Object o)
Checks if configurations are equal ignoring the node filter.Object
getAffinityKey()
Gets affinity key used for key-to-node affinity calculation.String
getCacheName()
Gets cache name used for key-to-node affinity calculation.ServiceCallInterceptor[]
getInterceptors()
Gets service call interceptors.int
getMaxPerNodeCount()
Gets maximum number of deployed service instances on each node,0
for unlimited.String
getName()
Gets service name.IgnitePredicate<ClusterNode>
getNodeFilter()
Gets node filter used to filter nodes on which the service will be deployed.Service
getService()
Gets service instance.int
getTotalCount()
Gets total number of deployed service instances in the cluster,0
for unlimited.int
hashCode()
boolean
isStatisticsEnabled()
Tells wheter statistics for this service is enabled.ServiceConfiguration
setAffinityKey(Object affKey)
Sets affinity key used for key-to-node affinity calculation.ServiceConfiguration
setCacheName(String cacheName)
Sets cache name used for key-to-node affinity calculation.ServiceConfiguration
setInterceptors(ServiceCallInterceptor... interceptors)
Sets service call interceptors.ServiceConfiguration
setMaxPerNodeCount(int maxPerNodeCnt)
Sets maximum number of deployed service instances on each node,0
for unlimited.ServiceConfiguration
setName(String name)
Sets service name.ServiceConfiguration
setNodeFilter(IgnitePredicate<ClusterNode> nodeFilter)
Sets node filter used to filter nodes on which the service will be deployed.ServiceConfiguration
setService(Service svc)
Sets service instance.ServiceConfiguration
setStatisticsEnabled(boolean enabled)
Enables or disables statistics for the service.ServiceConfiguration
setTotalCount(int totalCnt)
Sets total number of deployed service instances in the cluster,0
for unlimited.String
toString()
-
-
-
Field Detail
-
name
protected String name
Service name.
-
totalCnt
protected int totalCnt
Total count.
-
maxPerNodeCnt
protected int maxPerNodeCnt
Max per-node count.
-
cacheName
protected String cacheName
Cache name.
-
affKey
protected Object affKey
Affinity key.
-
nodeFilter
@GridToStringExclude protected IgnitePredicate<ClusterNode> nodeFilter
Node filter.
-
isStatisticsEnabled
protected boolean isStatisticsEnabled
Enables or disables service statistics.
-
interceptors
@GridToStringExclude protected ServiceCallInterceptor[] interceptors
Interceptor.
-
-
Method Detail
-
getName
public String getName()
Gets service name.This parameter is mandatory when deploying a service.
- Returns:
- Service name.
-
setName
public ServiceConfiguration setName(String name)
Sets service name.This parameter is mandatory when deploying a service.
- Parameters:
name
- Service name.- Returns:
this
for chaining.
-
getService
public Service getService()
Gets service instance.This parameter is mandatory when deploying a service.
- Returns:
- Service instance.
-
setService
public ServiceConfiguration setService(Service svc)
Sets service instance.This parameter is mandatory when deploying a service.
- Parameters:
svc
- Service instance.- Returns:
this
for chaining.
-
getTotalCount
public int getTotalCount()
Gets total number of deployed service instances in the cluster,0
for unlimited.At least one of
getTotalCount()
orgetMaxPerNodeCount()
values must be positive.- Returns:
- Total number of deployed service instances in the cluster,
0
for unlimited.
-
setTotalCount
public ServiceConfiguration setTotalCount(int totalCnt)
Sets total number of deployed service instances in the cluster,0
for unlimited.At least one of
getTotalCount()
orgetMaxPerNodeCount()
values must be positive.- Parameters:
totalCnt
- Total number of deployed service instances in the cluster,0
for unlimited.- Returns:
this
for chaining.
-
getMaxPerNodeCount
public int getMaxPerNodeCount()
Gets maximum number of deployed service instances on each node,0
for unlimited.At least one of
getMaxPerNodeCount()
orgetTotalCount()
values must be positive.- Returns:
- Maximum number of deployed service instances on each node,
0
for unlimited.
-
setMaxPerNodeCount
public ServiceConfiguration setMaxPerNodeCount(int maxPerNodeCnt)
Sets maximum number of deployed service instances on each node,0
for unlimited.At least one of
getMaxPerNodeCount()
orgetTotalCount()
values must be positive.- Parameters:
maxPerNodeCnt
- Maximum number of deployed service instances on each node,0
for unlimited.- Returns:
this
for chaining.
-
getCacheName
public String getCacheName()
Gets cache name used for key-to-node affinity calculation.This parameter is optional and is set only when deploying service based on key-affinity.
NOTE: If the cache is destroyed, the service will be undeployed automatically.- Returns:
- Cache name, possibly
null
.
-
setCacheName
public ServiceConfiguration setCacheName(String cacheName)
Sets cache name used for key-to-node affinity calculation.This parameter is optional and is set only when deploying service based on key-affinity.
- Parameters:
cacheName
- Cache name, possiblynull
.- Returns:
this
for chaining.
-
getAffinityKey
public Object getAffinityKey()
Gets affinity key used for key-to-node affinity calculation.This parameter is optional and is set only when deploying service based on key-affinity.
- Returns:
- Affinity key, possibly
null
.
-
setAffinityKey
public ServiceConfiguration setAffinityKey(Object affKey)
Sets affinity key used for key-to-node affinity calculation.This parameter is optional and is set only when deploying service based on key-affinity.
- Parameters:
affKey
- Affinity key, possiblynull
.- Returns:
this
for chaining.
-
getNodeFilter
public IgnitePredicate<ClusterNode> getNodeFilter()
Gets node filter used to filter nodes on which the service will be deployed.This parameter is optional. If not provided service may be deployed on any or all nodes in the grid, based on configuration.
- Returns:
- Node filter used to filter nodes on which the service will be deployed, possibly
null
.
-
setNodeFilter
public ServiceConfiguration setNodeFilter(IgnitePredicate<ClusterNode> nodeFilter)
Sets node filter used to filter nodes on which the service will be deployed.This parameter is optional. If not provided service may be deployed on any or all nodes in the grid, based on configuration.
- Parameters:
nodeFilter
- Node filter used to filter nodes on which the service will be deployed, possiblynull
.- Returns:
this
for chaining.
-
setStatisticsEnabled
public ServiceConfiguration setStatisticsEnabled(boolean enabled)
Enables or disables statistics for the service. If enabled, durations of the service's methods invocations are measured (in milliseconds) and stored in histograms of metric registryIgniteServiceProcessor.SERVICE_METRIC_REGISTRY
by service name.NOTE: Statistics are collected only with service proxies obtaining by methods like
IgniteServices.serviceProxy(String, Class, boolean)
and won't work for direct reference of local services which you can get by, for example,IgniteServices.service(String)
.NOTE: Statistics are collected only for all service's interfaces except
Service
andExternalizable
if implemented. Statistics are not collected for methods not declared in any interface.- Parameters:
enabled
- Iftrue
, enables service statistics. Disables otherwise.- Returns:
this
for chaining.
-
isStatisticsEnabled
public boolean isStatisticsEnabled()
Tells wheter statistics for this service is enabled.- Returns:
True
, if statistics for this service will be enabled.False
otherwise.
-
getInterceptors
public ServiceCallInterceptor[] getInterceptors()
Gets service call interceptors.- Returns:
- Service call interceptors.
-
setInterceptors
public ServiceConfiguration setInterceptors(ServiceCallInterceptor... interceptors)
Sets service call interceptors.- Parameters:
interceptors
- Service call interceptors.- Returns:
this
for chaining.
-
equalsIgnoreNodeFilter
public boolean equalsIgnoreNodeFilter(Object o)
Checks if configurations are equal ignoring the node filter. Node filters control on which nodes the services are deployed and often can be ignored for equality checks.- Parameters:
o
- Other configuration.- Returns:
True
if configurations are equal,false
otherwise.
-
-