Partilhar via


Configurando atores confiáveis--KVSActorStateProvider

Você pode modificar a configuração padrão do KVSActorStateProvider alterando o arquivo de settings.xml gerado na raiz do pacote do Microsoft Visual Studio na pasta Config para o ator especificado.

O tempo de execução do Azure Service Fabric procura nomes de seção predefinidos no arquivo de settings.xml e consome os valores de configuração ao criar os componentes de tempo de execução subjacentes.

Nota

Não exclua ou modifique os nomes de seção das seguintes configurações no arquivo settings.xml que é gerado na solução Visual Studio.

Configuração de segurança do replicador

As configurações de segurança do replicador são usadas para proteger o canal de comunicação usado durante a replicação. Isso significa que os serviços não podem ver o tráfego de replicação uns dos outros, garantindo que os dados altamente disponíveis também estejam seguros. Por padrão, uma seção de configuração de segurança vazia impede a segurança de replicação.

Importante

Nos nós Linux, os certificados devem ser formatados em PEM. Para saber mais sobre como localizar e configurar certificados para Linux, consulte 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 Provedor de Estado do Ator altamente confiável. A configuração padrão é gerada pelo modelo do Visual Studio e deve ser suficiente. Esta seção fala sobre configurações adicionais que estão disponíveis para ajustar o replicador.

Nome da secção

<ActorName>ServiceReplicatorConfig

Nomes de configuração

Nome Unit Default value Observações
BatchAcknowledgementInterval Segundos 0,015 Período de tempo pelo qual o replicador no secundário aguarda depois de receber uma operação antes de enviar de volta uma confirmação para o primário. Quaisquer outras confirmações a serem enviadas para operações processadas dentro deste intervalo são enviadas como uma resposta.
ReplicatorEndpoint N/A Nenhum parâmetro padrão - obrigatório Endereço IP e porta que o replicador primário/secundário usará para se comunicar com outros replicadores no conjunto de réplicas. Isso deve fazer referência a um ponto de extremidade de recurso TCP no manifesto do serviço. Consulte Recursos de manifesto de serviço para ler mais sobre como definir recursos de ponto de extremidade no manifesto de serviço.
RetryInterval Segundos 5 Período de tempo após o qual o replicador retransmite 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 em uma única mensagem.
MaxPrimaryReplicationQueueSize Número de operações 1024 Número máximo de operações na fila principal. Uma operação é liberada depois que o replicador primário recebe uma confirmação de todos os replicadores secundários. Este valor deve ser superior a 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 é liberada depois de tornar seu estado altamente disponível através da persistência. Este valor deve ser superior a 64 e uma potência de 2.

Configuração da loja

As configurações de armazenamento são usadas para configurar o armazenamento local que é usado para persistir o estado que está sendo replicado. A configuração padrão é gerada pelo modelo do Visual Studio e deve ser suficiente. Esta seção fala sobre configurações adicionais que estão disponíveis para ajustar o armazenamento local.

Nome da secção

<ActorName>ServiceLocalStoreConfig

Nomes de configuração

Nome Unit Default value Observações
MaxAsyncCommitDelayInMilliseconds Milissegundos 200 Define o intervalo máximo de processamento em lote para confirmações de armazenamento local duráveis.
MaxVerPages Número de páginas 16384 O número máximo de páginas de versão no banco de dados de armazenamento local. Determina o número máximo de transações pendentes.

Arquivo 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 da replicação. Um valor de '0' resulta na menor latência possível, ao custo da taxa de transferência (já que mais mensagens de confirmação devem ser enviadas e processadas, cada uma contendo menos confirmações). Quanto maior o valor de BatchAcknowledgementInterval, maior a taxa de transferência geral da replicação, ao custo de maior latência de operação. Isso se traduz diretamente na latência das confirmações de transações.