StatelessServiceDescription
Describes a stateless service.
Properties
Name | Type | Required |
---|---|---|
ApplicationName |
string | No |
ServiceName |
string | Yes |
ServiceTypeName |
string | Yes |
InitializationData |
array of integer | No |
PartitionDescription |
PartitionSchemeDescription | Yes |
PlacementConstraints |
string | No |
CorrelationScheme |
array of ServiceCorrelationDescription | No |
ServiceLoadMetrics |
array of ServiceLoadMetricDescription | No |
ServicePlacementPolicies |
array of ServicePlacementPolicyDescription | No |
DefaultMoveCost |
string (enum) | No |
IsDefaultMoveCostSpecified |
boolean | No |
ServicePackageActivationMode |
string (enum) | No |
ServiceDnsName |
string | No |
ScalingPolicies |
array of ScalingPolicyDescription | No |
TagsRequiredToPlace |
NodeTagsDescription | No |
TagsRequiredToRun |
NodeTagsDescription | No |
InstanceCount |
integer | Yes |
MinInstanceCount |
integer | No |
MinInstancePercentage |
integer | No |
Flags |
integer | No |
InstanceCloseDelayDurationSeconds |
integer (int64) | No |
InstanceLifecycleDescription |
InstanceLifecycleDescription | No |
InstanceRestartWaitDurationSeconds |
integer (int64) | No |
ApplicationName
Type: string
Required: No
The name of the application, including the 'fabric:' URI scheme.
ServiceName
Type: string
Required: Yes
The full name of the service with 'fabric:' URI scheme.
ServiceTypeName
Type: string
Required: Yes
Name of the service type as specified in the service manifest.
InitializationData
Type: array of integer
Required: No
The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
PartitionDescription
Type: PartitionSchemeDescription
Required: Yes
The partition description as an object.
PlacementConstraints
Type: string
Required: No
The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)".
CorrelationScheme
Type: array of ServiceCorrelationDescription
Required: No
The correlation scheme.
ServiceLoadMetrics
Type: array of ServiceLoadMetricDescription
Required: No
The service load metrics.
ServicePlacementPolicies
Type: array of ServicePlacementPolicyDescription
Required: No
The service placement policies.
DefaultMoveCost
Type: string (enum)
Required: No
The move cost for the service.
Specifies the move cost for the service.
Possible values are:
Zero
- Zero move cost. This value is zero.Low
- Specifies the move cost of the service as Low. The value is 1.Medium
- Specifies the move cost of the service as Medium. The value is 2.High
- Specifies the move cost of the service as High. The value is 3.VeryHigh
- Specifies the move cost of the service as VeryHigh. The value is 4.
IsDefaultMoveCostSpecified
Type: boolean
Required: No
Indicates if the DefaultMoveCost property is specified.
ServicePackageActivationMode
Type: string (enum)
Required: No
The activation mode of service package to be used for a service.
The activation mode of service package to be used for a Service Fabric service. This is specified at the time of creating the Service.
Possible values are:
SharedProcess
- This is the default activation mode. With this activation mode, replicas or instances from different partition(s) of service, on a given node, will share same activation of service package on a node. The value is zero.ExclusiveProcess
- With this activation mode, each replica or instance of service, on a given node, will have its own dedicated activation of service package on a node. The value is 1.
ServiceDnsName
Type: string
Required: No
The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
ScalingPolicies
Type: array of ScalingPolicyDescription
Required: No
Scaling policies for this service.
TagsRequiredToPlace
Type: NodeTagsDescription
Required: No
Tags for placement of this service.
TagsRequiredToRun
Type: NodeTagsDescription
Required: No
Tags for running of this service.
InstanceCount
Type: integer
Required: Yes
InclusiveMinimum: -1
The instance count.
MinInstanceCount
Type: integer
Required: No
MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
Note, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
MinInstancePercentage
Type: integer
Required: No
MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
Note, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
Flags
Type: integer
Required: No
Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified.
This property can be a combination of those flags obtained using bitwise 'OR' operator.
For example, if the provided value is 1 then the flags for InstanceCloseDelayDuration is set.
- None - Does not indicate any other properties are set. The value is zero.
- InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 1.
- InstanceRestartWaitDuration - Indicates the InstanceRestartWaitDurationSeconds property is set. The value is 2.
InstanceCloseDelayDurationSeconds
Type: integer (int64)
Required: No
InclusiveMaximum: 4294967295
InclusiveMinimum: 0
Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node.
The endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance.
In addition, clients that have subscribed to service endpoint change events(https://docs.microsoft.com/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do
the following upon receiving the endpoint removal notification:
- Stop sending new requests to this instance.
- Close existing connections after in-flight requests have completed.
- Connect to a different instance of the service partition for future requests.
Note, the default value of InstanceCloseDelayDuration is 0, which indicates that there won't be any delay or removal of the endpoint prior to closing the instance.
InstanceLifecycleDescription
Type: InstanceLifecycleDescription
Required: No
Defines how instances of this service will behave during their lifecycle.
InstanceRestartWaitDurationSeconds
Type: integer (int64)
Required: No
InclusiveMaximum: 4294967295
InclusiveMinimum: 0
When a stateless instance goes down, this timer starts. When it expires Service Fabric will create a new instance on any node in the cluster.
This configuration is to reduce unnecessary creation of a new instance in situations where the instance going down is likely to recover in a short time. For example, during an upgrade.
The default value is 0, which indicates that when stateless instance goes down, Service Fabric will immediately start building its replacement.