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

O Rails 8 sempre foi um divisor de águas...
Na era do declínio do império dos Estados Unidos...
Os aplicativos da Web são uma pedra fundamental da...
O mundo da tecnologia tem estado agitado com discussões...
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
Com várias décadas de experiência, adoro criar aplicativos corporativos...
A escalabilidade é um fator crítico quando se trata...
Ao trabalhar em um projeto de código aberto no...
A Inteligência Artificial (IA) tem se tornado cada vez...
A maioria das organizações enfrenta desafios ao se adaptar...
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A cibersegurança é um tópico cada vez mais importante...
A experiência do desenvolvedor (DX) é um tópico cada...
Ao relatar estatísticas resumidas para resultados de testes de...
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
Tillbaka till blogg

Lämna en kommentar

Notera att kommentarer behöver godkännas innan de publiceras.