Introdução aos atores confiáveis

Este artigo explica como criar e depurar um aplicativo Reliable Ator simples no Visual Studio. Para obter mais informações sobre atores confiáveis, consulte Introdução aos atores confiáveis do Service Fabric.

Pré-requisitos

Antes de começar, verifique se você tem o ambiente de desenvolvimento do Service Fabric, incluindo o Visual Studio, configurado em sua máquina. Para obter detalhes, consulte como configurar o ambiente de desenvolvimento.

Criar um novo projeto no Visual Studio

Inicie o Visual Studio 2019 ou posterior como administrador e crie um novo projeto de Aplicativo do Service Fabric:

Ferramentas do Service Fabric para Visual Studio - novo projeto

Na caixa de diálogo seguinte, escolha Ator Service em .NET Core 2.0 e insira um nome para o serviço.

Modelos de projeto do Service Fabric

O projeto criado mostra a seguinte estrutura:

Estrutura do projeto do Service Fabric

Examine a solução

A solução contém três projetos:

  • O projeto de aplicação (MyApplication). Este projeto empacota todos os serviços juntos para implantação. Ele contém os scripts ApplicationManifest.xml e PowerShell para gerenciar o aplicativo.

  • O projeto de interface (HelloWorld.Interfaces). Este projeto contém a definição da interface para o ator. As interfaces do ator podem ser definidas em qualquer projeto com qualquer nome. A interface define o contrato de ator que é compartilhado pela implementação do ator e os clientes que chamam o ator. Como os projetos cliente podem depender dele, normalmente faz sentido defini-lo em um assembly separado da implementação do ator.

  • O projeto de serviço ao ator (HelloWorld). Este projeto define o serviço do Service Fabric que hospedará o ator. Ele contém a implementação do ator, HelloWorld.cs. Uma implementação de ator é uma classe que deriva do tipo Actor base e implementa as interfaces definidas no projeto MyActor.Interfaces . Uma classe ator também deve implementar um construtor que aceite uma ActorService instância e um ActorId e os passe para a classe base Actor .

    Este projeto também contém Program.cs, que registra classes de ator com o tempo de execução do Service Fabric usando ActorRuntime.RegisterActorAsync<T>(). A HelloWorld turma já está inscrita. Quaisquer implementações de atores adicionais adicionadas ao projeto também devem ser registradas no Main() método.

Personalizar o ator HelloWorld

O modelo de projeto define alguns métodos na IHelloWorld interface e os implementa na implementação do HelloWorld ator. Substitua esses métodos para que o serviço ator retorne uma cadeia de caracteres "Hello World" simples.

No projeto HelloWorld.Interfaces, no arquivo IHelloWorld.cs, substitua a definição de interface da seguinte maneira:

public interface IHelloWorld : IActor
{
    Task<string> GetHelloWorldAsync();
}

No projeto HelloWorld, em HelloWorld.cs, substitua toda a definição de classe da seguinte maneira:

[StatePersistence(StatePersistence.Persisted)]
internal class HelloWorld : Actor, IHelloWorld
{
    public HelloWorld(ActorService actorService, ActorId actorId)
        : base(actorService, actorId)
    {
    }

    public Task<string> GetHelloWorldAsync()
    {
        return Task.FromResult("Hello from my reliable actor!");
    }
}

Pressione Ctrl-Shift-B para criar o projeto e garantir que tudo seja compilado.

Adicionar um cliente

Crie um aplicativo de console simples para chamar o serviço de ator.

  1. Clique com o botão direito do mouse na solução no Gerenciador >de Soluções Adicionar>Novo Projeto....

  2. Nos tipos de projeto .NET Core, escolha Aplicativo de Console (.NET Core). Nomeie o projeto ActorClient.

    Caixa de diálogo Adicionar Novo Projeto

    Nota

    Um aplicativo de console não é o tipo de aplicativo que você normalmente usaria como cliente no Service Fabric, mas é um exemplo conveniente para depuração e teste usando o cluster local do Service Fabric.

  3. O aplicativo de console deve ser um aplicativo de 64 bits para manter a compatibilidade com o projeto de interface e outras dependências. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto ActorClient e clique em Propriedades. Na guia Compilar, defina Destino da plataforma como x64.

    Construir propriedades

  4. O projeto do cliente requer o pacote NuGet de atores confiáveis. clique em Ferramentas>Gestor de Pacotes NuGet>Consola de Gestor de Pacotes. No Console do Gerenciador de Pacotes, digite o seguinte comando:

    Install-Package Microsoft.ServiceFabric.Actors -IncludePrerelease -ProjectName ActorClient
    

    O pacote NuGet e todas as suas dependências são instalados no projeto ActorClient.

  5. O projeto cliente também requer uma referência ao projeto de interfaces. No projeto ActorClient, clique com o botão direito do mouse em Dependências e clique em Adicionar Referência do Projeto.... Selecione Projects > Solution (se ainda não estiver selecionado) e marque a caixa de seleção ao lado de HelloWorld.Interfaces. Clique em OK.

    Caixa de diálogo Adicionar referência

  6. No projeto ActorClient, substitua todo o conteúdo do Program.cs pelo seguinte código:

    using System;
    using System.Threading.Tasks;
    using Microsoft.ServiceFabric.Actors;
    using Microsoft.ServiceFabric.Actors.Client;
    using HelloWorld.Interfaces;
    
    namespace ActorClient
    {
        class Program
        {
            static void Main(string[] args)
            {
                IHelloWorld actor = ActorProxy.Create<IHelloWorld>(ActorId.CreateRandom(), new Uri("fabric:/MyApplication/HelloWorldActorService"));
                Task<string> retval = actor.GetHelloWorldAsync();
                Console.Write(retval.Result);
                Console.ReadLine();
            }
        }
    }
    

Execução e depuração

Pressione F5 para criar, implantar e executar o aplicativo localmente no cluster de desenvolvimento do Service Fabric. Durante o processo de implantação, você pode ver o progresso na janela Saída .

Janela de saída de depuração do Service Fabric

Quando a saída contém o texto, O aplicativo está pronto, é possível testar o serviço usando o aplicativo ActorClient. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto ActorClient e clique em Depurar>Iniciar nova instância. O aplicativo de linha de comando deve exibir a saída do serviço ator.

Saída do aplicativo

Gorjeta

O tempo de execução dos atores do Service Fabric emite alguns eventos e contadores de desempenho relacionados aos métodos do ator. Eles são úteis em diagnósticos e monitoramento de desempenho.

Próximos passos

Saiba mais sobre como os atores confiáveis usam a plataforma Service Fabric.