Configurar o Reliable Actors --KVSActorStateProvider

Pode modificar a configuração predefinida de KVSActorStateProvider ao alterar o ficheiro de settings.xml gerado na raiz do pacote do Microsoft Visual Studio na pasta Config do ator especificado.

O runtime do Azure Service Fabric procura nomes de secções predefinidos no ficheiro de settings.xml e consome os valores de configuração ao criar os componentes de runtime subjacentes.

Nota

Não elimine nem modifique os nomes das secções das seguintes configurações no ficheiro settings.xml que é gerado na solução do Visual Studio.

Configuração de segurança do replicador

As configurações de segurança do replicador são utilizadas para proteger o canal de comunicação utilizado durante a replicação. Isto significa que os serviços não conseguem ver o tráfego de replicação uns dos outros, garantindo que os dados altamente disponíveis também são seguros. Por predefinição, uma secção de configuração de segurança vazia impede a segurança da replicação.

Importante

Nos nós do Linux, os certificados têm de ser formatados com PEM. Para saber mais sobre como localizar e configurar certificados para Linux, veja Configurar certificados no Linux.

Nome da secção

<ActorName>ServiceReplicatorSecurityConfig

Configuração do replicador

As configurações do replicador configuram o replicador responsável por tornar o estado do Fornecedor de Estado do Ator altamente fiável. A configuração predefinida é gerada pelo modelo do Visual Studio e deve ser suficiente. Esta secção fala sobre configurações adicionais que estão disponíveis para otimizar o replicador.

Nome da secção

<ActorName>ServiceReplicatorConfig

Nomes de configuração

Name Unidade Valor predefinido Observações
BatchAcknowledgementInterval Segundos 0.015 Período de tempo para o qual o replicador na secundária aguarda depois de receber uma operação antes de enviar uma confirmação para a primária. Quaisquer outras confirmações a serem enviadas para operações processadas neste intervalo são enviadas como uma resposta.
ReplicatorEndpoint N/D Sem predefinição – parâmetro necessário Endereço IP e porta que o replicador primário/secundário utilizará para comunicar com outros replicadores no conjunto de réplicas. Isto deve referenciar um ponto final de recurso TCP no manifesto do serviço. Veja Recursos de manifesto do serviço para saber mais sobre como definir recursos de ponto final no manifesto do serviço.
RetryInterval Segundos 5 Período de tempo após o qual o replicador transmite novamente uma mensagem se não receber uma confirmação de uma operação.
MaxReplicationMessageSize Bytes 50 MB Tamanho máximo dos dados de replicação que podem ser transmitidos numa única mensagem.
MaxPrimaryReplicationQueueSize Número de operações 1024 Número máximo de operações na fila primária. Uma operação é libertada depois de o replicador primário receber uma confirmação de todos os replicadores secundários. Este valor tem de ser maior que 64 e uma potência de 2.
MaxSecondaryReplicationQueueSize Número de operações 2048 Número máximo de operações na fila secundária. Uma operação é libertada depois de tornar o seu estado altamente disponível por persistência. Este valor tem de ser maior que 64 e uma potência de 2.

Configuração da loja

As configurações do arquivo são utilizadas para configurar o arquivo local utilizado para manter o estado que está a ser replicado. A configuração predefinida é gerada pelo modelo do Visual Studio e deve ser suficiente. Esta secção fala sobre configurações adicionais que estão disponíveis para otimizar o arquivo local.

Nome da secção

<ActorName>ServiceLocalStoreConfig

Nomes de configuração

Name Unidade Valor predefinido Observações
MaxAsyncCommitDelayInMilliseconds Milissegundos 200 Define o intervalo máximo de criação de batches para consolidações de arquivo local duráveis.
MaxVerPages Número de páginas 16384 O número máximo de páginas de versão na base de dados do arquivo local. Determina o número máximo de transações pendentes.

Ficheiro de configuração de exemplo

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

Observações

O parâmetro BatchAcknowledgementInterval controla a latência de replicação. Um valor de "0" resulta na menor latência possível, ao custo do débito (como mais mensagens de reconhecimento têm de ser enviadas e processadas, cada uma com menos confirmações). Quanto maior for o valor para BatchAcknowledgementInterval, maior será o débito de replicação geral, com o custo de uma latência de operação mais elevada. Isto traduz-se diretamente na latência das consolidações de transações.