Realized in 1.0.8

 

 

DistributeMe should provide means to control overload of a server.
Effectively it means that distributeme should limit outgoing requests on the client side, and incoming requests on the server side.

There are generally 3 proposal how to realize it:

1. Pragmatic

New annotation, @ConcurrencyControl(clientLimit, serverLimit)

2. A little more detailed

New annotations:
@ConcurrencyControlServerSide(limit)
@ConcurrencyControlClientSide(limit)

3. Large more complicated

ConcurrencyControlStrategy{
  boolean allowOutgoingCall(...);
  boolean allowIncomingCall(...);
}
public @interface ConcurrencyControl {
	Class<? extends ConcurrencyControlStrategy> strategyClass();
	String strategyParameter() default "";
}

4. Mixed

Realize 3 and 2, and let 2 be internally translated into 3.

  • No labels