Novo Serviço de Agendamento do Dapr 1.14: Melhorando a Escalabilidade e Durabilidade de Tarefas Assíncronas

Novo Serviço de Agendamento do Dapr 1.14: Melhorando a Escalabilidade e Durabilidade de Tarefas Assíncronas

O lançamento do Dapr 1.14 no mês passado incluiu muitos novos recursos e estava repleto de recursos. Isso incluiu a adição de uma nova API de Jobs e serviço de plano de controle do Scheduler para gerenciar jobs. Ao longo dos anos, o projeto Dapr foi frequentemente solicitado a incluir uma API de Jobs. O serviço Scheduler permite isso e foi projetado para abordar as melhorias de desempenho e escalabilidade nos lembretes do Actor e na API do Workflow.

Nesta postagem, vou me aprofundar nos detalhes de como o serviço Scheduler foi projetado e sua implementação para dar a você algum contexto.

O Problema que o Scheduler Resolve

Antes da v1.14, se você quisesse agendar um trabalho, você poderia usar o componente de vinculação Cron para implementar trabalhos recorrentes em um cronograma definido regularmente; por exemplo, automatizar backups de banco de dados, enviar notificações de e-mail recorrentes, executar tarefas de manutenção de rotina, processamento de dados e ETL, executar atualizações do sistema e processamento em lote.

No entanto, a abordagem de vinculação carecia nas áreas de durabilidade e escalabilidade e, mais importante, não podia ser combinada com outras APIs do Dapr. Por exemplo, outra solicitação frequente é poder ter mensagens atrasadas para pub/sub, e sem dúvida haverá outros cenários de trabalho atrasados ​​que surgirão.

Limitações da Abordagem de Vinculação Cron

  1. Durabilidade: O componente de vinculação Cron não fornece nenhuma garantia de durabilidade. Se o processo que hospeda o trabalho for interrompido, o trabalho agendado será perdido.

  2. Escalabilidade: O componente de vinculação Cron é executado no mesmo processo que o aplicativo, o que significa que a escalabilidade do trabalho agendado é limitada pela escalabilidade do aplicativo. Isso pode levar a problemas de desempenho se houver muitos trabalhos agendados.

  3. Integração com outras APIs do Dapr: O componente de vinculação Cron é uma solução isolada e não pode ser facilmente combinado com outras APIs do Dapr, como pub/sub ou atores.

Para resolver esses problemas, o Dapr 1.14 introduziu o serviço Scheduler, que fornece uma API de trabalhos independente e escalável, com garantias de durabilidade.

O Serviço Scheduler do Dapr

O serviço Scheduler do Dapr é um serviço de plano de controle que gerencia a execução de trabalhos assíncronos. Ele fornece uma API para criar, atualizar, excluir e consultar trabalhos, bem como uma implementação de plano de controle que garante a durabilidade e a escalabilidade dos trabalhos.

Arquitetura do Scheduler

O serviço Scheduler é composto por dois componentes principais:

  1. API de Trabalhos: Essa é a API HTTP que os clientes usam para criar, atualizar, excluir e consultar trabalhos.

  2. Serviço de Plano de Controle: Esse é o serviço que gerencia a execução dos trabalhos. Ele é responsável por garantir a durabilidade e a escalabilidade dos trabalhos.

O serviço de plano de controle usa um armazenamento durável (como um banco de dados) para armazenar os detalhes dos trabalhos. Quando um trabalho precisa ser executado, o serviço de plano de controle envia uma mensagem para um serviço de execução, que é responsável por executar o trabalho.

Recursos da API de Trabalhos

A API de Trabalhos do Scheduler fornece os seguintes recursos:

  1. Criar Trabalho: Crie um novo trabalho especificando o nome, a programação, os dados de entrada e outros metadados.

  2. Atualizar Trabalho: Atualize os detalhes de um trabalho existente, como a programação ou os dados de entrada.

  3. Excluir Trabalho: Exclua um trabalho existente.

  4. Consultar Trabalhos: Consulte a lista de trabalhos existentes, filtrando por status, programação, etc.

  5. Obter Trabalho: Obtenha os detalhes de um trabalho específico.

  6. Executar Trabalho Imediatamente: Execute um trabalho imediatamente, ignorando sua programação.

Além disso, a API de Trabalhos suporta vários tipos de programação, incluindo:

  • Cronograma Cron: Execute o trabalho de acordo com um cronograma Cron.
  • Atraso: Execute o trabalho após um atraso especificado.
  • Recorrente: Execute o trabalho em um intervalo recorrente.

Integração com outras APIs do Dapr

Uma das principais vantagens do serviço Scheduler é sua capacidade de se integrar com outras APIs do Dapr, como pub/sub e atores. Por exemplo, você pode usar o Scheduler para enviar notificações atrasadas por meio do pub/sub ou para executar tarefas de manutenção em seus atores.

Essa integração é possível porque o Scheduler usa o runtime do Dapr para se comunicar com outros serviços. Quando um trabalho precisa ser executado, o serviço de plano de controle do Scheduler envia uma mensagem para o runtime do Dapr, que então invoca o código do trabalho.

Implementação do Serviço de Plano de Controle

O serviço de plano de controle do Scheduler é responsável por garantir a durabilidade e a escalabilidade dos trabalhos. Ele usa um armazenamento durável, como um banco de dados, para armazenar os detalhes dos trabalhos.

Quando um trabalho precisa ser executado, o serviço de plano de controle envia uma mensagem para um serviço de execução, que é responsável por invocar o código do trabalho. Esse serviço de execução pode ser dimensionado independentemente do serviço de plano de controle, o que permite uma melhor escalabilidade.

Além disso, o serviço de plano de controle usa técnicas como particionamento e replicação para garantir a alta disponibilidade e a tolerância a falhas.

Conclusão

O serviço Scheduler do Dapr 1.14 fornece uma solução escalável e durável para agendar e executar trabalhos assíncronos. Ele resolve as limitações da abordagem de vinculação Cron e permite uma melhor integração com outras APIs do Dapr.

Com o Scheduler, você pode criar, atualizar, excluir e consultar trabalhos por meio de uma API HTTP, com garantias de durabilidade e escalabilidade. Além disso, você pode integrar o Scheduler com outras APIs do Dapr, como pub/sub e atores, para criar soluções mais poderosas e flexíveis.

Se você está trabalhando com cargas de trabalho assíncronas em seu aplicativo Dapr, o serviço Scheduler é uma adição valiosa ao seu conjunto de ferramentas.

Conteúdo Relacionado

Bloga dön

Yorum yapın

Yorumların yayınlanabilmesi için onaylanması gerektiğini lütfen unutmayın.