wcf - C# .NET - Sending large number of small messages (over network) with minimal latency -


this question has answer here:

i'm trying find optimal solution sending large amount of small messages (usually around 1000 per sec, can 10000 per sec. each message 1kb large), on internet, minimal possible latency (think e.g. financial data). started basic duplex wcf channel - great local network. needed change contract oneway (operationcontractattribute isoneway property set true), otherwise each message waited confirmation , network latency counted twice each message. after service still doesn't catch (and on server side i'm reading messages queue , sending, on client side enqueue message after receiving , not block).

i'm wondering if there overhead caused sending large number of small messages. there better way (e.g. sort of streaming on tcp)?

edit1: based on feedback i'm adding little technical info:

our service in singleton instance mode can called concurrently ([servicebehavior(instancecontextmode = instancecontextmode.single, concurrencymode = concurrencymode.multiple)]).

we didn't configure throttling has default values (however there few concurrent clients - 1 4)

in fact use duplex channel - client calls in (registers) , server sending large amount of messages client. client performs little calls. server calls client via callback channel in synchronized way (we iterate through blocking queue), very, (those mentioned ~1000 messages per sec, few thousands per sec).

edit2: explaining why not duplicate how wcf scale large number of client users? question:

in our scenario have small number of clients (let's consider 1 single client), large number of messages being continuously sent 1 client - it's streaming scenario.

we did measurements of typical client scenario , service throughput , found cannot scale in situations (for over-the-internet client @ short times in day when there larger number of messages needed sent - queued wcf temporarily see increasing delay in receiving time).

scaling out multiple server boxes isn't unfortunately viable solution (one client need connect 1 server whole day).

how did configured servicethrottling ? (see msdn servicethrottling) please provide instancecontextmode configuration of service.


Comments

Popular posts from this blog

javascript - JS causing window size to be bigger than necessary - Dropdown bug -

php - Calling a template part from a post -

How to mention the localhost in android -