ARQUITETURA RESTFULL COM MUITOS REQUESTS

TUNUSAT 18/04/2017 21:50:06
#473391
PessoALL,

Me perguntaram isso em um teste e eu não sei responder...

Citação:

[Ô]Imagine um cenário onde você precisa construir uma arquitetura de API Restful onde existe um alto número de requests (50% GET, 50% POST), descreva uma solução para suportar esse volume.[Ô]
(A solução deve contemplar tanto a camada de aplicação (http) , quanto a camada de armazenamento de dados.)



Por favor, alguém podem me explicar?

Obrigado,
Tunusat.
CLEVERTON 19/04/2017 08:31:41
#473396
Bom dia, de antemão peço desculpas pela intromissão no tópico.

eu tenho um problema parecido, e olha que minha aplicação é pequena.

As vezes quando o dispositivo mobile fica ocioso, Quando tento fazer requisições na webapi, acontece bastante problema com timeout.
Tenho sistema para restaurantes e o acesso é quase a todo momento, mas se deixar ocioso por um tempinho... problema a vista.

Geralmente a estrutura é um PC no caixa que é o servidor, usando IIS, e o roteador compartilhado pra todos.

KERPLUNK 19/04/2017 11:32:22
#473397
CLEVERTON, esse problema pode ser devido à rede. Quando a conexão fica ociosa, o pipe é destruído e para recriar pode levar um tempinho. Verifique as configurações de rede.
TUNUSAT, com certeza então o backend tem que ser algo bem rápido, por isso, soluções prontas como Entity Framework podem não ser uma boa alternativa. Nesse caso, um bom e velho CRUD feito à mão, bem simplificado pode ser sua solução. De preferência, sem o uso de Reflection ou outras operações que podem ser bastante lentas.
DS2T 19/04/2017 13:14:08
#473398
Resposta escolhida
Não sou muito bom nessa parte teórica, nem sei falar os termos técnicos bonitos... Mas pelo que entendi, ele quer essa resposta:

Como existe uma grande quantidade de requisições, deve-se adotar um formato de comunicação bem leve, como o JSON. A estrutura de um xml pesaria bastante, e como o REST não te obriga a usar um formato específico, JSON possivelmente pode ser uma boa solução. Assim você diminuiria consideravelmente a quantidade de dados trafegados.
Sobre a camada de armazenamento, não sei muito bem o que falar. Para os GET serem rápidos, uma boa indexação no banco de dados é essencial. No demais, é o que o Kerplunk comentou... as vezes vale a pena perder as facilidades de uma camada de persistência mais complexa e fazer operações mais cruas, pra não perder tempo buscando os dados das propriedades e seus atributos por Reflection..

Abraços!
CLEVERTON 20/04/2017 08:38:04
#473422
KERPLUNK
Citação:

CLEVERTON, esse problema pode ser devido à rede. Quando a conexão fica ociosa, o pipe é destruído e para recriar pode levar um tempinho. Verifique as configurações de rede.



O ocioso que me refiro é no máximo, 5~10 minutos.
vc se refere que isso pode ser um problema no equipamento de rede ( roteador, firewall ) ?

vc acha uma boa prática eu ficar dando acessando algum método que só me retorne um 1bit na webapi quando o dispositivo estiver em descanso de tela ?
KERPLUNK 20/04/2017 11:34:25
#473428
Citação:

:
KERPLUNK
CLEVERTON, esse problema pode ser devido à rede. Quando a conexão fica ociosa, o pipe é destruído e para recriar pode levar um tempinho. Verifique as configurações de rede.

O ocioso que me refiro é no máximo, 5~10 minutos.
vc se refere que isso pode ser um problema no equipamento de rede ( roteador, firewall ) ?

vc acha uma boa prática eu ficar dando acessando algum método que só me retorne um 1bit na webapi quando o dispositivo estiver em descanso de tela ?


Já que se trata de uma rede interna, esse pode ser um quebra-galho até você ver porque o pipe está sendo derrubado.
CLEVERTON 20/04/2017 13:13:46
#473433
Joia, vou dar uma verificada, obg pelas dicas.
LLAIA 20/04/2017 17:32:49
#473451
A solução seria apenas com modificações no código e banco, ou eles esperam também respostas de infra? Acho que pra GET, se for possível implementar um banco NoSQL ou um Cache de repente daria certo.
Tópico encerrado , respostas não são mais permitidas