Chuyển tới nội dung chính

Rate Limiting

Tổng Quan

Chính sách Rate Limiting được sử dụng để kiểm soát tốc độ mà các yêu cầu được gửi đến một API. Điều này giúp ngăn chặn lạm dụng, quản lý tải lưu lượng một cách hiệu quả và bảo vệ các dịch vụ backend khỏi bị quá tải bởi các yêu cầu quá mức. Chính sách này có thể được cấu hình với các tùy chọn lưu trữ Redis khác nhau để quản lý giới hạn yêu cầu.

Bằng cách cấu hình chính sách Rate Limiting, các nhà cung cấp API có thể quản lý lưu lượng một cách hiệu quả, đảm bảo phân bổ tài nguyên công bằng và bảo vệ các dịch vụ backend khỏi tải quá mức.

Chi Tiết Cấu Hình

Bảng sau đây phác thảo các tùy chọn cấu hình chính có sẵn cho chính sách Giới Hạn Tốc Độ:

Tên TrườngMô TảGiá Trị Ví Dụ
Maximum requests per secondĐịnh nghĩa số lượng yêu cầu tối đa được phép mỗi giây cho API.100
Redis timeout (ms)Đặt giá trị thời gian chờ cho các hoạt động Redis tính bằng mili giây.2000
Redis DB SelectCho phép chọn loại lưu trữ Redis cho các bộ đếm giới hạn tốc độ. Các tùy chọn bao gồm APIMRedis, CustomRedis hoặc RedisCluster.APIMRedis

Giới Hạn Tốc Độ

Tùy Chọn Lưu Trữ Redis

Tùy thuộc vào yêu cầu của hệ thống, người dùng có thể chọn từ các loại lưu trữ Redis sau:

  • APIMRedis (Mặc định) - Sử dụng phiên bản Redis tích hợp sẵn của hệ thống.
  • CustomRedis - Cho phép người dùng cấu hình phiên bản Redis của riêng họ bằng cách chỉ định các tham số kết nối chi tiết.
  • RedisCluster - Sử dụng thiết lập cụm Redis để mở rộng quy mô và chịu lỗi.

APIMRedis được khuyến nghị cho các trường hợp sử dụng tiêu chuẩn, trong khi CustomRedisRedisCluster nên được sử dụng cho các kịch bản nâng cao yêu cầu cấu hình Redis chuyên dụng.

Các Trường Cấu Hình Redis Tùy Chỉnh

Nếu chọn CustomRedis, các trường bổ sung sau đây phải được cấu hình:

Tên TrườngMô TảGiá Trị Ví Dụ
redisHostTên máy chủ của máy chủ Redis.127.0.0.1
redisPortCổng được sử dụng cho các kết nối Redis.6379
redisPasswordMật khẩu cho xác thực Redis (nếu cần).password
redisDatabaseChỉ định cơ sở dữ liệu Redis nào sẽ sử dụng.1
redis_pool_sizeĐịnh nghĩa số lượng kết nối Redis có thể được giữ trong pool.1000
redis_pool_backlogChỉ định số lượng yêu cầu đang chờ có thể được xếp hàng khi pool đầy.30

Các Trường Cấu Hình Cluster Redis

Nếu chọn RedisCluster, các trường bổ sung phải được thiết lập:

Tên TrườngMô TảGiá Trị Ví Dụ
redis_cluster_nodesĐịa chỉ của nút cluster Redis.redis-cluster.apim:6379
redis_cluster_passwordMật khẩu để truy cập cluster Redis (nếu có).password
redis_cluster_nameĐịnh nghĩa tên của cluster Redis.kong_redis_cluster
redis_connect_timeoutThời gian chờ để thiết lập các kết nối Redis (tính bằng ms).1000
redis_read_timeoutThời gian chờ để đọc phản hồi từ Redis (tính bằng ms).1000
redis_send_timeoutThời gian chờ để gửi yêu cầu đến Redis (tính bằng ms).1000
redis_pool_sizeSố lượng kết nối tối đa có thể được phân bổ trong pool Redis.1000
redis_pool_backlogSố lượng yêu cầu đang chờ được phép nếu pool đầy.30
redis_keepalive_timeoutĐịnh nghĩa thời gian mà các kết nối nhàn rỗi nên được giữ sống (tính bằng ms).55000