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.