Поделиться через


Configuring Reliable Actors--KVSActorStateProvider

You can modify the default configuration of KVSActorStateProvider by changing the settings.xml file that is generated in the Microsoft Visual Studio package root under the Config folder for the specified actor.

The Azure Service Fabric runtime looks for predefined section names in the settings.xml file and consumes the configuration values while creating the underlying runtime components.

Примечание.

Do not delete or modify the section names of the following configurations in the settings.xml file that is generated in the Visual Studio solution.

Конфигурация безопасности репликатора

Конфигурации безопасности репликатора используются для защиты канала связи, используемого во время репликации. This means that services cannot see each other's replication traffic, ensuring that the data that is made highly available is also secure. По умолчанию пустой раздел конфигурации безопасности предотвращает безопасность репликации.

Это важно

На узлах Linux сертификаты должны быть отформатированы в формате PEM. Дополнительные сведения о поиске и настройке сертификатов для Linux см. в статье "Настройка сертификатов в Linux".

Имя раздела

<ActorName>ServiceReplicatorSecurityConfig

Конфигурация репликатора

Replicator configurations configure the replicator that is responsible for making the Actor State Provider state highly reliable. Конфигурация по умолчанию создается шаблоном Visual Studio и должна быть достаточной. В этом разделе рассказывается о дополнительных конфигурациях, доступных для настройки репликатора.

Имя раздела

<ActorName>ServiceReplicatorConfig

Имена файлов конфигурации

Имя Единица Значение по умолчанию Замечания
BatchAcknowledgementInterval Секунды 0.015 Временной период, в течение которого репликатор на вторичном сервере ожидает после получения операции перед отправкой подтверждения на основной сервер. Любые другие подтверждения, отправляемые для операций, обрабатываемых в течение этого интервала, отправляются в виде одного ответа.
ReplicatorEndpoint Не применимо No default--required parameter IP-адрес и порт, которые основной или вторичный репликатор будет использовать для взаимодействия с другими репликаторами в наборе реплик. Это должно ссылаться на конечную точку ресурса TCP в манифесте службы. Refer to Service manifest resources to read more about defining endpoint resources in the service manifest.
RetryInterval Секунды 5 Time period after which the replicator re-transmits a message if it does not receive an acknowledgement for an operation.
MaxReplicationMessageSize Байт 50 МБ Maximum size of replication data that can be transmitted in a single message.
MaxPrimaryReplicationQueueSize Количество операций 1024 Максимальное количество операций в первичной очереди. Операция освобождается после того, как основной репликатор получает подтверждение от всех вторичных репликаторов. This value must be greater than 64 and a power of 2.
MaxSecondaryReplicationQueueSize Количество операций 2048 Максимальное количество операций в вторичной очереди. An operation is freed up after making its state highly available through persistence. This value must be greater than 64 and a power of 2.

Store configuration

Store configurations are used to configure the local store that is used to persist the state that is being replicated. Конфигурация по умолчанию создается шаблоном Visual Studio и должна быть достаточной. This section talks about additional configurations that are available to tune the local store.

Имя раздела

<ActorName>ServiceLocalStoreConfig

Имена файлов конфигурации

Имя Единица Значение по умолчанию Замечания
MaxAsyncCommitDelayInMilliseconds Миллисекунды 200 Sets the maximum batching interval for durable local store commits.
MaxVerPages Количество страниц 16384 The maximum number of version pages in the local store database. It determines the maximum number of outstanding transactions.

Образец файла конфигурации

<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2011/01/fabric">
   <Section Name="MyActorServiceReplicatorConfig">
      <Parameter Name="ReplicatorEndpoint" Value="MyActorServiceReplicatorEndpoint" />
      <Parameter Name="BatchAcknowledgementInterval" Value="0.05"/>
   </Section>
   <Section Name="MyActorServiceLocalStoreConfig">
      <Parameter Name="MaxVerPages" Value="8192" />
   </Section>
   <Section Name="MyActorServiceReplicatorSecurityConfig">
      <Parameter Name="CredentialType" Value="X509" />
      <Parameter Name="FindType" Value="FindByThumbprint" />
      <Parameter Name="FindValue" Value="9d c9 06 b1 69 dc 4f af fd 16 97 ac 78 1e 80 67 90 74 9d 2f" />
      <Parameter Name="StoreLocation" Value="LocalMachine" />
      <Parameter Name="StoreName" Value="My" />
      <Parameter Name="ProtectionLevel" Value="EncryptAndSign" />
      <Parameter Name="AllowedCommonNames" Value="My-Test-SAN1-Alice,My-Test-SAN1-Bob" />
   </Section>
</Settings>

Замечания

The BatchAcknowledgementInterval parameter controls replication latency. Значение "0" приводит к наименьшей возможной задержке за счёт пропускной способности (так как сообщения подтверждения должны быть отправлены и обработаны, каждое из которых содержит меньше подтверждений). Чем больше значение для BatchAcknowledgementInterval, тем выше общая пропускная способность репликации при стоимости более высокой задержки операции. Это напрямую преобразуется в задержку фиксаций транзакций.