Не тот open API. Когда вы не управляете клиентами.
Очередной раз вижу в чате клич "Ребята, отзовитесь, кто пользуется API нашего сервиса X?".
Кажется, что за ерунда? Это же все наши внутренние сервисы -- посмотри по логам, по трейсам откуда запросы идут...
Но там может этого не быть. Например, ваши же сервисы не отправляют User-Agent со своим именем и версией в вызове, или нет трейсов. Всё - у вас просто куча логов об обращении на какой то endpoint вашего API.
Но проблема глубже - в этой ситуации у вас нет инструмента контроля нагрузки, вы не знаете вытянет ли ваш сервис. Да можно сказать - мы провели нагрузочное тестирование и он вытянет еще x10. Но ты не знаешь сколько придет, хотя можешь это сделать.
О чем я говорю - о способе который видел впервые у Amazon.
Как это работает:
1) Вы даете доступ в API только по индивидуальным ApiKey, каждому потребителю свой
2) Каждый потребитель запрашивает у вас ApiKey и обязан принести сразу число - сколько нагрузки он будет вам давать (rps, ops)
3) Вы смотрите в показатели своего сервиса и принимаете решение. Если хватает мощности, то сразу выдаете ApiKey, иначе вы можете сказать "Ребята, у нас не хватит производительности вас обслужить - берем задачу на подумать как повысить производительность", и когда повысили - выдаем ApiKey.
4) Конечно хоршо бы вести базу какой ApiKey на какой сервис выдали, чтобы найти ответственных если что.
5) И также по ApiKey вы можете легко выставлять Rate-Limit, что позволит не завалить весь сервис, если один из клиентов сошел с ума.
А у вас пользуется подобными способами?
Встроено это в процесс подключения новых потребителей API?
Post #159
1.38K
- 🔥 6
- 👍 1
- 🤔 1