Existe uma solução geral para entregar bytes a um destino com configuração de confiabilidade e buffer?

0

Eu tenho alguns eventos de aplicativos.

Eu quero que esses eventos sejam entregues em alguns lugares: um arquivo girado periodicamente (no formato TSV proprietário no meu caso), um barramento de mensagens (Kafka no meu caso), para arquivamento em um recurso de rede (Amazon Glacier no meu caso).

Eu tenho o que eu acho que deveria ser um problema muito fundamental. Eu quero que meus aplicativos apenas enviem os bytes que eles querem para alguns sumidouros, e tenham outro processo cujo trabalho é garantir que:

  • as mensagens chegam ao destino
  • se o destino estiver inacessível, eles armazenam em buffer por algum tempo
  • se a memória estiver cheia, eles armazenam em buffer no disco por algum período de tempo
  • se estivermos ficando presos, as mensagens começam a ser descartadas, mas quando toda a rede não está inativa, percebemos que estamos começando a perder as mensagens.

Eu gostaria de poder configurar o comportamento acima com alguns parâmetros simples para a quantidade de memória a ser alocada, o quanto é importante para uma determinada mensagem chegar ao seu destino (talvez o número de novas tentativas, etc.) .

Para mim isso soa como um problema geral bastante "básico" (difícil, sem dúvida, mas eu teria imaginado algo existente para isso). Eu quero escrever bytes em um soquete Unix ou algo dos meus aplicativos e fazer com que o agente seja responsável pelo buffering e pela nova tentativa de entregá-los aos meus destinos.

Existe tal coisa? É isso que as pessoas usam (r) syslog ou journald para?

    
por Julian 18.11.2015 / 18:10

0 respostas

Tags