[Apiman-user] Rate-limit policy does not work in APIMan cluster

Eric Wittmann eric.wittmann at redhat.com
Tue Jan 19 14:53:25 EST 2016


Hi Uri.

I just did some testing on a couple of machines and everything worked as 
expected for me.

However, I wonder if perhaps you don't have your two servers 
time-sync'd?  If the times aren't the same on all the servers, then the 
time-window logic in the rate limiting code will be inconsistent at best.

I initially had some trouble with this, but once I installed ntp on both 
my machines then everything worked fine.

-Eric

On 1/19/2016 9:55 AM, Vax, Uri wrote:
> apiman.properties files attached .
>
> Talinux3 = Node1
> Talinux1 = Node2
>
> -----Original Message-----
> From: Eric Wittmann [mailto:eric.wittmann at redhat.com]
> Sent: Tuesday, January 19, 2016 3:57 PM
> To: Vax, Uri; Jakub Čecháček
> Cc: apiman-user at lists.jboss.org
> Subject: Re: [Apiman-user] Rate-limit policy does not work in APIMan cluster
>
> Are you 100% sure that the Gateway on Node1 and Node2 are sharing the same Elasticsearch instance?  From your description it sounds like perhaps they are not (e.g. the rateBucket being initialized after the request to Node2).
>
> Perhaps you could send us the apiman.properties files from *each* of your two nodes?
>
> Regards,
>
> Eric
>
> On 1/18/2016 9:03 AM, Vax, Uri wrote:
>> The cluster:
>>
>> Two Linux machines
>>
>> *Node1*: Gateway + Manager + Elastic Search
>>
>> *Node2*: Gateway
>>
>> Node1 and Node2 share same Elastic Search.
>>
>> Maybe I missing something?
>>
>> By the way… not sure, but I noticed that the value of *rateBucket* has
>> been initialized after the request to Node2
>>
>> {
>>
>>           "_index": "apiman_gateway",
>>
>>           "_type": "rateBucket",
>>
>>           "_id": "UFVCTElDfHx8fGxvY2FsfHxzfHwxLjA=",
>>
>>           "_score": 1,
>>
>>           "_source": {
>>
>>             "count": 1,
>>
>>             "last": 1453115651374
>>
>>           }
>>
>> *From:*Jakub Čecháček [mailto:jcechace at gmail.com]
>> *Sent:* Monday, January 18, 2016 3:33 PM
>> *To:* Vax, Uri
>> *Cc:* apiman-user at lists.jboss.org
>> *Subject:* Re: [Apiman-user] Rate-limit policy does not work in APIMan
>> cluster
>>
>> Hello,
>>
>> could you please describe the setup/topology of your "cluster"?  The
>> HA setup of apiman takes advantage of the fact that state is shared
>> only inside ES -- so you should be good as long as you share one ES
>> cluster among all gateways. Thus it is not really a cluster.
>>
>> Jakub.
>>
>> On Mon, Jan 18, 2016 at 1:10 PM, Vax, Uri <uvax at informatica.com
>> <mailto:uvax at informatica.com>> wrote:
>>
>> Hi
>>
>> I’m using APIMan 1.1.9.
>>
>> It seems like Rate-limit policy does not work properly when there are
>> several nodes (node1, node2).
>>
>> *_The scenario:_*
>>
>> ·Setup up an APIMan cluster with two nodes (node1 , node2).
>>
>> ·Create a service with a rate-limit policy of 5 request per minute
>>
>> ·Send requests to the service using postman (or any other http client):
>>
>> oSend requests to node1 until rate limit is exceeded
>>
>> oSend another request to node2 – APIMan will pass the request to the
>> service end-point API instead of returning the “Rate limit exceeded”
>> response
>>
>> Thanks,
>>
>> Uri
>>
>>
>> _______________________________________________
>> Apiman-user mailing list
>> Apiman-user at lists.jboss.org <mailto:Apiman-user at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/apiman-user
>>
>>
>>
>> _______________________________________________
>> Apiman-user mailing list
>> Apiman-user at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/apiman-user
>>


More information about the Apiman-user mailing list