On 16/11/13 22:06, James Reeves wrote:

I can see overload-middleware being useful in an internal network, where clients are submitting jobs to a central server. The clients can be programmed to wait a random length of time before retrying if the server is overloaded. I suspect that a better solution might be to use a queue, but it really depends on the requirements of the system being developed.

Yes, this is the context in which I learnt about this approach to overload handling - one of the projects I work on is basically a simple HTTP interface to a more complicated protocol server (DIAMETER), with some database caching. It provides subscriber data to a VoIP server, so there's no direct user access to it - the "user interface" is a phone (or Skype-like program).

Queues are also a good solution in some cases, and we use them elsewhere - but you do need to tune your queue length to get the performance you want. The principle here is that you provide a target latency, and your "queue length" (actually the refill speed of your token bucket) gets automatically tuned to meet it.

(I probably caused some confusion initially by saying "web apps" - I should have said "HTTP services" which is what I actually had in mind.)

Rob

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to