2013-08-16 28 views
8

Các trạng thái tài liệu:ga mỗi url trong Node.js restify

Lưu ý rằng bạn luôn có thể đặt trên các tuyến đường này mỗi URL để cho phép giá yêu cầu khác nhau với các nguồn lực khác nhau (nếu ví dụ, một đường , giống như/my/slow/database dễ dàng hơn nhiều so với số/my/fast/memcache).

Tôi gặp khó khăn khi tìm hiểu cách triển khai chính xác điều này.

Về cơ bản, tôi muốn phân phối các tệp tĩnh với tốc độ ga khác với API của tôi.

+0

thử tính năng này [restify-throttle @ GitHub] (https://github.com/thisandagain/restify-throttle/tree/master#use-without-restify) – dgm

Trả lời

11

Điều chỉnh thiết lập (giới hạn tỷ lệ) với việc khôi phục một số điểm cuối như thế này.

var rateLimit = restify.throttle({burst:100,rate:50,ip:true}); 
    server.get('/my/endpoint', 
     rateLimit, 
     function(req, res, next) { 
      // Do something here 
      return next(); 
     } 
    ); 
    server.post('/another/endpoint', 
     rateLimit, 
     function(req, res, next) { 
      // Do something here 
      return next(); 
     } 
    ); 

Hoặc như thế này.

server.post('/my/endpoint', 
     restify.throttle({burst:100,rate:50,ip:true}), 
     function(req, res, next) { 
      // Do something here 
      return next(); 
     } 
    ); 

Ngay cả khi điều chỉnh cho mỗi điểm cuối, điều khiển toàn cầu vẫn có thể được mong muốn, để có thể thực hiện như thế này.

server.use(restify.throttle({burst:100,rate:50,ip:true}); 

(tham chiếu) Ga là một trong số các số còn lại Bundled-Plugins.

+0

Sự khác nhau giữa 'rate' và' burst' là gì ? –

+1

Khôi phục sử dụng thuật toán [token bucket] (https://en.wikipedia.org/wiki/Token_bucket) để tăng lưu lượng truy cập. Với điều này, giá trị 'burst' là số lượng yêu cầu tối đa có thể trên mỗi giây và giá trị' rate' là tốc độ trung bình của các yêu cầu mỗi giây. Ngay cả khi yêu cầu được ổn định từ góc nhìn của người gọi, máy chủ Restify có thể không nhận được yêu cầu đó với tốc độ ổn định (do tắc nghẽn truyền tải hoặc các lý do khác), do đó giá trị 'burst' cung cấp mức dung sai vượt quá giá trị' rate' trung bình. –

Các vấn đề liên quan