If the image of the flowchart cannot be load normally, you can use this
link:
https://user-images.githubusercontent.com/22141303/141767163-1e61abe0-b892-4b52-90a6-ef1824e2f04c.png

Best regards,
Nic <https://github.com/nic-6443 <https://github.com/bisakhmondal>>

On Mon, Nov 15, 2021 at 4:51 PM 钱勇 <[email protected]> wrote:

> Hi Community,
>
> Currently, we have a useful limit-count plugin, which can realize "Limit
> request rate by a fixed number of requests in a given time window".
> Can we consider going further, allowing limit and window to be configured
> more flexibly?
>
> Imagine the following business scenario:
> The user ID (maybe from the HTTP header) is used as the key to limit
> request count, and the limit of the number of requests for different users
> can be dynamically set according to the instructions returned by the
> upstream (from the HTTP response header of the upstream), so that different
> limit can be specified for each user.
>
> In order to achieve the above features, I carefully read the current
> limit-count code, and currently consider implementing it according to the
> following changes:
>
> 1. Add the following configuration to the limit-count plugin:
> {
>     type = "object",
>     properties = {
>         dynamic_limit_enable = {type = "boolean", default = false},
>         dynamic_limit_count_header = {
>             type = "string",
>             default = "X-RateLimit-Set-Limit",
>         },
>         dynamic_limit_window_header = {
>             type = "string",
>             default = "X-RateLimit-Set-Window",
>         }
>     }
> }
>
> 2. This is the workflow I envision now, because the text description is
> more complicated, I use a flowchart instead:
>
> [image: image.png]
>
> 3. As a supplement, send the "X-RateLimit-Limit" and
> "X-RateLimit-Remaining" header corresponding to the current key to
> upstream, so that upstream can combine the current limit state to implement
> business logic.
>
> The above are my current ideas. As a newcomer to the community, I look
> forward to your guidance and suggestions. Thank you very much.
>
> Best regards,
> Nic <https://github.com/nic-6443 <https://github.com/bisakhmondal>>
>

Reply via email to