710 messaggi dal 13 novembre 2008
Contributi
ciao,
ho implementato una comunicazione real-time con signalr per l'aggiornamento in tempo reale di dati in tabelle; i client (angular) inviano e ricevono messaggi, il server (web api .net core) li smista.
Volevo capire il limite delle connessioni per non incorrere in brutte sorprese, in quanto tutti i client devono avere sempre i dati aggiornati; il tutto è su Azure, piano Basic scalabile a 3 istanze con impostato ARRAffinity. Non mi aspetto più di un centinaio di client connessi.

leggendo qui
https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#app-service-limits
Web Sockets per instance-->350
è questo il dato da considerare?

altrimenti per evitare di implementare il sistema con Redis, ecc. posso pensare di passare al servizio SignalR di Azure ma il piano FREE è molto limitativo e lo STANDARD per il momento fuori budget.

Grazie.
244 messaggi dal 22 gennaio 2017
Contributi
Ciao, il dato che segnali è una restrizione di App Service. Ovviamente se fosse ospitato in locale non ci sarebbe un limite.
350 connessioni per instance, significa che se scali a 2 istanze potrai avere 700 connessioni.
Poichè sul plan Basic hai 3 instance massimo, il numero di connessioni contemporanee è 1050.
Per quanto riguarda Azure SignalR Service Free, è una unità con un massimo di 20 connessioni quindi sono troppo poche per il tuo caso.
Il piano Standard attualmente è di 20¤ mese a unità (con 100 unità massimo), in cui ogni unità ha 1000 connessioni contemporanee.
Modificato da andrea.tosato86 il 23 novembre 2018 09.48 -
710 messaggi dal 13 novembre 2008
Contributi
ok, allora se il dato da considerare è quello dovremmo esserci, se però scalo ho questo dubbio:

server su istanza1 riceve un messaggio da client1 (essendo impostato ARRAffinity questa connessione non viene spostata su istanze diverse e procede correttamente)
server su istanza1 quindi smista il messaggio a tutti gli altri client, supponiamo una trentina; ognuno di questi però potrebbe essere in connessione con un server su istanza diversa...
come può arrivare il messaggio a tutti i client?

Grazie!!
244 messaggi dal 22 gennaio 2017
Contributi
Scusami, ho dato per scontato che avessi già fatto l'associazione tra le sessioni (Sticky Session-ARRAffinity) e la necessità di Redis.
Se l'app service scala a 2 o più istanze, è necessario connettere un backplain per far dialogare tutti i client.
Puoi leggere un articolo qui: https://rolandguijt.com/scaling-out-your-asp-net-core-signalr-application/
Oppure le slide: https://www.slideshare.net/atosato86/signalr-il-websocket-che-tanto-ci-mancava slide 46 e seguenti.
710 messaggi dal 13 novembre 2008
Contributi
bene allora ho due scelte

ArrAffinity+Redis
Redis circa 15¤/mese

piano standard SignalR circa 20¤/mese

ciao e grazie
710 messaggi dal 13 novembre 2008
Contributi
esatto a unità

oppure si potrebbe usare come backplane ServiceBus molto più economico, ma al momento non lo vedo per .Net Core...
244 messaggi dal 22 gennaio 2017
Contributi
Non è più supportato.
Meglio redis.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.