Size: a a a

2020 June 05

IV

Igor V in ctodailychat
Почему?
источник

A

Andrey in ctodailychat
Igor V
Когда-то столкнулся с подобной проблемой и тоже была идея переписать как надо, но все решилось проще. На стороне клиента реализовали обработку таймаутов, а между клиентом и сервером поставили API gateway. Первоначально рассматривал APIGee, но в итоге реализовали Nginx  + openresty, потому что там есть lua. На стороне Nginx был рейт лимитёр и ретраер.

Client -> Nginx -> Target service
Как я понял они клиент, и лимит им выставляет сторонний сервис
источник

Y

Yaroslav in ctodailychat
Igor V
Когда-то столкнулся с подобной проблемой и тоже была идея переписать как надо, но все решилось проще. На стороне клиента реализовали обработку таймаутов, а между клиентом и сервером поставили API gateway. Первоначально рассматривал APIGee, но в итоге реализовали Nginx  + openresty, потому что там есть lua. На стороне Nginx был рейт лимитёр и ретраер.

Client -> Nginx -> Target service
+1 за api gateway
источник

VD

Vladimir Deev in ctodailychat
Andrey
Как я понял они клиент, и лимит им выставляет сторонний сервис
да, так и есть
источник

VD

Vladimir Deev in ctodailychat
Igor V
Почему?
ну, не знаю.. дополнительная сущность в виде nginx, еще и на lua что-то нужно дописывать 🙂
источник

VD

Vladimir Deev in ctodailychat
там много вопросов встает помимо соблюдения rate limit'а. решение должно легко масштабироваться, например
источник

A

Andrey in ctodailychat
Vladimir Deev
ну, не знаю.. дополнительная сущность в виде nginx, еще и на lua что-то нужно дописывать 🙂
Вы просто хранимки в редисе не писали...
источник

VD

Vladimir Deev in ctodailychat
Andrey
Вы просто хранимки в редисе не писали...
да, до такого еще не дошло, хотя редис любим)
источник

VD

Vladimir Deev in ctodailychat
есть еще вот такая штука для соблюдения rate limit'а:
https://redis.io/topics/distlock

в эту сторону еще смотрим
источник

IV

Igor V in ctodailychat
Vladimir Deev
ну, не знаю.. дополнительная сущность в виде nginx, еще и на lua что-то нужно дописывать 🙂
С точки зрения архитектуры вам нужен api gateway. Подойдёт любое решение. В openresty/nginx plus все необходимое уже есть в коробке, но есть огромное количество других хороший решений
источник

VD

Vladimir Deev in ctodailychat
у меня сразу ассоциация с AWS Api Gateway который, как понимаю, о другом
источник

K

Kir in ctodailychat
Alex
все ок, не обращай внимания, тут полчата живут не в рф
Я уже отвык от совка, и всего пару людей способно испортить реноме уважаемого чата
источник

A

Andrey in ctodailychat
как я понимаю @classmethod педлагает поднять лимитиер на вашей стороне
источник

IV

Igor V in ctodailychat
Vladimir Deev
у меня сразу ассоциация с AWS Api Gateway который, как понимаю, о другом
это просто другой use case.
источник

IV

Igor V in ctodailychat
Andrey
как я понимаю @classmethod педлагает поднять лимитиер на вашей стороне
Лимитера недостаточно, нужен ещё CB и ретраер. Но да, поднять между клиентом и target api
источник

A

Andrey in ctodailychat
скучная у вас задача, вот мне сейчас надо найти таблицу в базе по значению в одной из колонок, есть примерное имя колонки, а pg это или монга - не известно, если pg - есть 5 бд, в одной 26 схем
источник

IV

Igor V in ctodailychat
Andrey
скучная у вас задача, вот мне сейчас надо найти таблицу в базе по значению в одной из колонок, есть примерное имя колонки, а pg это или монга - не известно, если pg - есть 5 бд, в одной 26 схем
Information_schema.columns не спасает?
источник

A

Andrey in ctodailychat
точного имени колонки нет
источник

A

Andrey in ctodailychat
возможно таблицы уже нет, легаси данные....
источник

VD

Vladimir Deev in ctodailychat
Andrey
скучная у вас задача, вот мне сейчас надо найти таблицу в базе по значению в одной из колонок, есть примерное имя колонки, а pg это или монга - не известно, если pg - есть 5 бд, в одной 26 схем
сама задача может быть да, а вот решить, переписывать ли все, что сделано за год разработки, или навставлять костыли - вот это нормальная 🙂
источник