|
|
|
|||||
|
Resilience
I am evaluating ICE for use in a particular distributed application, and in particular how it would cope with a denial of servce type situation where many simultaneous client requests are made.
What happens if there is a flood of client requests to an ICE server? I assume that at some point connections would fail. At what limit would that happen? What error would the client see? In an ideal world the ICE client would implement a thread-pool to use for client calls, thus limiting the number of concurrent requests. Analogous to the server threads ICE provides for asynchronous method dispatch. Does ICE do that, or would I have to implement it myself in my application? My alternative is to use some kind of messaging middleware (eg spread) which would simply queue all the requests. However this throws all the work on marshalling back on to my application. Comments welcome! |
|
|||||
|
Thanks Michi.
I've just been playing around with connections between multiple clients and a single server, and using netstat at the server to see what connections there are. It seems as if there are initially two connections, one TCP and one UDP, listening. When a client connects and creates a remote object proxy, two TCP connections appear. If the client does nothing for a while, they dissappear again. If the client process makes further remote object proxies, no new connections are made- it seems to reuses the existing ones. However if new processes are created and objects within them, new connections appear. Is that what you'd expect? ie that multiple objects within the same client process share the same TCP connections, but new processes require new connections? John |
|
||||||
|
Quote:
Quote:
Quote:
Quote:
Cheers, Michi. |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|