Hello,

I need some advices on building scalable media server with restlet.
The idea is to buld application that serves media to relative big number  
clients (about >500).
The specific features of clients' request are HTTP long-living nature. So  
once connected client permanently fetches content from server.
Because simultaneous number of clients is high the blocking  
thread-per-request model is not appropriate (maybe im wrong ?).

My current approach consist of following steps

1. restlet that returns HTTP OK and custom representaion (extending  
OutputRepresentation)
2. representation has blocking queue inside it and in write() method  
register that queue inside media manager
to be notified about media events that should be streamed to underlying  
client.
3. HTTP connection should not break and be permanent -> client should not  
reconnect after it got connected to server.
4. inside write() method of representation i'm performing blocking get  
 from blockign queue to receive event from media manager
that should be written to client's stream.

So now i'm playing with jetty NIO connector paramters and can server about  
200-250 requests but its no less thatn required.
Can anyone give me some advice on designing the project to achieve requred  
scalability ?

PS: I was trying to use Grizzly connector with approach described above  
but it was serving about 10 clients and not more.
Also the Grizzly connector seems not having parameters to configure

PPS: Im using restlet 2.0m3

-- 
Regards,
Evgeny Shepelyuk

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2376958

Reply via email to