Access Throttling - User Guide

Access Throttling

In Web service interactions, we usually have to restrict the number of requests that the web service serves for a particular client. The throttle mechanism is used to control access to our services at different levels.

The WSO2 Web service Application Server (WSAS) provides an effective and efficient way to apply the throttle mechanism to your Web services.

Levels of Throttling

Throttling can be enabled at global level, service level or operation level.

      The WSO2 WSAS provides the throttling mechanism at global level or service level.

      Adding Throttling to a Service

      Use this function to add a throttle parameter that specifies a variable millisecond wait between calls or a variable maximum number of calls per unit of time. This would facilitate the smooth operation of Web services and REST using the Web service and HTTP client steps.

      The throttling option is disabled by default. If you want to add the throttling mechanism, you should enable it.

      1. In the navigator, under Manage/Service, click List. The Deployed Services page appears.
      2. Select the service for which you want to enable throttling. The Service Dashboard page (for that service) appears.
      3. In the Quality of Service Configuration panel, click Access Throttling. The Throttling Configuration page appears.
      4. In the Enable Throttling list, click Yes.The existing throttle configuration appears in the wizard
      5. Figure 1: Throttling Configuration

      6. Click Add New Entry. To enter new parameters or modify existing parameters click Allow in the Access list.
      7. If you set the parameters for a particular service, your configuration will be applied only to that particular service. On the other hand, if you reached this page from global configurations, these configurations will be applied globally.
      8. Click Finish. Throttling will be engaged for that particular service or it will be engaged globally.

      Field Descriptions

      Functions of Buttons

      Parameters for Throttling Configuration

      Fields

      Field Name Description
      Maximum Concurrent Accesses It can be used to control the number of requests that are served at any given moment. If throttling is enabled globally, this value will be the maximum number of requests that are served by all the services deployed in the server at a given moment. If throttling is enabled at service level, it is the maximum requests for that particular service. In the case of operation level, it is the maximum requests for that particular operation.
      Range The IP address range or the domain is restricted from accessing the service. Requests from such clients will be restricted based on the specified values.
      Type This indicates the type of Range. It can be IP or DOMAIN. It should be IP if the range is given as a single IP address or a range of IP addresses (e.g., 10.100.1.30-10.100.1.60). It should be DOMAIN if the range is given as as a domain (e.g., *.wso2.com). If you specify configurations types of both IP and DOMAIN, first priority will be given to DOMAIN level configurations.
      Access If this is set to Allow, no restriction is applied for that range and all requests are allowed to go in as they come in. If it is Deny, access is completely denied for that range. When the Access is set to Allow or Deny, MRC, UT and PTP parameters are not necessary and t he said fields are de-activated. If it is Control, then the specified constraints are applied for that particular range.
      Access constraints are divided into the following three parameters.

      Example :

      MRC = 50, UT = 50000, PTP = 5000

      If 50 requests are arrived within 35000ms (35s) in a particular time period, no more requests are taken in for another 5000ms (5s = PTP). This time, the UT is altered to 35000ms + 5000ms = 40000ms (40s)