Comportamento do AKKA PUB-SUB quando nenhum assinante é registrado
-
20-12-2019 - |
Pergunta
Estamos planejando usar akka pub-sub em nosso projeto.Eu tenho o seguinte 2 consultas reg.o comportamento da AKKA PUB.
Solução
Roteamento de mensagens é decidido no local: sem assinantes, sem envio.As mensagens de buffer arbitrariamente dentro do kit de ferramentas só levarão a interrupções de memória surpreendentes.Se você quiser buffer, você terá que fazer isso explicitamente.
Outras dicas
Se ninguém for inscrito, as mensagens não são capturadas. Mas se você definir as coisas, isso não será um problema.
Para a segunda pergunta, depende do que você quer dizer com isso morrendo. A morte do ator é onde o ator desapareceu para sempre. Que é diferente de um ator falhando e sendo reiniciado. Se o ator for reiniciado usando o manuseio de falhas em seu supervisor, ele preserva sua caixa de correio para que nada seja perdido. Somente se o ator completamente morreu (não reiniciado), perderá sua caixa de correio.
Então, com um bom esquema de manipulação de falhas, você pode preservar suas mensagens pela falha do ator para a maioria dos casos de uso. Apenas mantenha seus ouvintes mais altos no ator Hierchy e empurre todas as coisas arriscadas que provavelmente falharão como E / O até o fundo. Olhe para o padrão de kernel de erro para ver o que quero dizer. Dessa forma, o fracasso geralmente não vai subir alto o suficiente para você estar perdendo caixas de correio.
Desde que é apenas uma reinicialização, todas as mensagens que estão inscritas ainda acabarão em sua caixa de correio e estarão esperando por ela.