Отидете по пример Ограничаване на скоростта

Ограничаването на тарифите е важен начин за управление на използването на ресурси и осигуряване на качество на услугата. Go предлага елегантен начин за ограничаване на скоростта с помощта на програми, канали и броячи на отметки.

Нека първо разгледаме основното ограничение на скоростта. Да предположим, че искате да ограничите скоростта на обработка на входящите заявки. Ще вземем тези заявки от канала за заявки .

Ограничителният канал ще получава стойност на всеки 200 милисекунди. Това ще бъде регулаторът на скоростта в нашата верига.

Като блокираме приемането на стойности от ограничителния канал преди обработката на всяка заявка, ще се ограничим до 1 заявка на 200 милисекунди.

Може да искате да организирате малки пакети от заявки в схема за ограничаване на скоростта, като същевременно запазите общата граница на скоростта. Това може да се направи с помощта на буфера на канала burstyLimiter. Този канал ви позволява да използвате размер на пакета до 3 събития.