Size: a a a

2020 August 24

S

Sergey in Go-go!
Вообще не вижу, что ты что-то читал. Максимум пробежал глазами готур и пару статей. https://habr.com/ru/post/249545/
источник

S

Sergey in Go-go!
это что было раньше, до модулей.
источник

IK

Ilya Kaznacheev in Go-go!
Марк Егоров
Тэкс. А мне нужно делать go mod init на каждый мой пакет?
Делаешь репу по standard-layout, в корне делаешь go mod init
Хэв фан
источник

RK

Reb Klimrod in Go-go!
Господа, дамы, здравствуйте. Ищу какие-то примеры реализации API на golang с "платными" запросами. Иначе говоря API где реализована регистрация\аутентификация + баланс пользователя + каждый запрос к API снижает баланс пользователя на единицу. Есть где-нибудь что-нибудь подобное реализованое? Облазил весь гит русский, китайский и ничего не нашел. Может я как-то не так ищу? Ведь задача такая наверняка возникает ежедневно не у меня одного.
источник

AQ

Alex Q in Go-go!
Reb Klimrod
Господа, дамы, здравствуйте. Ищу какие-то примеры реализации API на golang с "платными" запросами. Иначе говоря API где реализована регистрация\аутентификация + баланс пользователя + каждый запрос к API снижает баланс пользователя на единицу. Есть где-нибудь что-нибудь подобное реализованое? Облазил весь гит русский, китайский и ничего не нашел. Может я как-то не так ищу? Ведь задача такая наверняка возникает ежедневно не у меня одного.
а в чем сложность ?
источник

OJ

O . J in Go-go!
Reb Klimrod
Господа, дамы, здравствуйте. Ищу какие-то примеры реализации API на golang с "платными" запросами. Иначе говоря API где реализована регистрация\аутентификация + баланс пользователя + каждый запрос к API снижает баланс пользователя на единицу. Есть где-нибудь что-нибудь подобное реализованое? Облазил весь гит русский, китайский и ничего не нашел. Может я как-то не так ищу? Ведь задача такая наверняка возникает ежедневно не у меня одного.
любая реализация с транзакциями, только если у тебя много rps по api, то деньги придеться сразу холдить, и выносить счетчик в атомарный сторадж отдельно
источник

RK

Reb Klimrod in Go-go!
Alex Q
а в чем сложность ?
Да особо то сложностей нет. Интересно поглядеть на то как это реализуют не так криворуко как я мог бы сделать. Иначе говоря, хочется увидеть лучшие практики. Хотел найти что-то такое с DDD. Но даже простых примеров не смог нагуглить.
источник

М

Марк Егоров... in Go-go!
Ilya Kaznacheev
Делаешь репу по standard-layout, в корне делаешь go mod init
Хэв фан
Это всего один раз надо сделать или перед каждым run?
источник

БВ

Буйный Виталя... in Go-go!
Марк Егоров
Это всего один раз надо сделать или перед каждым run?
Какой run?
источник

RK

Reb Klimrod in Go-go!
O . J
любая реализация с транзакциями, только если у тебя много rps по api, то деньги придеться сразу холдить, и выносить счетчик в атомарный сторадж отдельно
Мой rps по api равен в данный момент примерно 0 или даже меньше 0. Но спасибо, предполагаю что rps будет достаточно высоким. Счетчик вы имеете ввиду тот что отсчитывает сколько запросов еще осталось доступно пользователю? А по факту это нельзя реализовывать? Ну отдали запрос - списали с баланса. Еще отдали, еще списали.. не?
источник

М

Марк Егоров... in Go-go!
Буйный Виталя
Какой run?
Добавил что-нибудь, изменил пакет - запустил go run на main файл, в который импорты идут.
источник

БВ

Буйный Виталя... in Go-go!
Марк Егоров
Добавил что-нибудь, изменил пакет - запустил go run на main файл, в который импорты идут.
Лучше билдить всегда.
источник

IK

Ilya Kaznacheev in Go-go!
Марк Егоров
Это всего один раз надо сделать или перед каждым run?
Один
источник

IK

Ilya Kaznacheev in Go-go!
Если хочешь файл зависимостей руками обновить, делай go mod tidy
источник

IK

Ilya Kaznacheev in Go-go!
Но go get и подобные это сам делает
источник

OJ

O . J in Go-go!
Reb Klimrod
Мой rps по api равен в данный момент примерно 0 или даже меньше 0. Но спасибо, предполагаю что rps будет достаточно высоким. Счетчик вы имеете ввиду тот что отсчитывает сколько запросов еще осталось доступно пользователю? А по факту это нельзя реализовывать? Ну отдали запрос - списали с баланса. Еще отдали, еще списали.. не?
Можно, это зависит больше от того что вы хотите в итоге.
Списание по хорошему придется оборачивать в транзакцию, если таких запросов будет 1к/s от одного пользователя, то скорее всего захлебнешься на блокировках. Если будет куда менее и вообще это mvp, то можно и так, опять же если тебя это устраивает.
Но холдить деньги, и выдавать квоту запросов на юзера что бы ее потом декриментить и списывать деньги сразу за N запросов это не сложно реализовать.
источник

RK

Reb Klimrod in Go-go!
O . J
Можно, это зависит больше от того что вы хотите в итоге.
Списание по хорошему придется оборачивать в транзакцию, если таких запросов будет 1к/s от одного пользователя, то скорее всего захлебнешься на блокировках. Если будет куда менее и вообще это mvp, то можно и так, опять же если тебя это устраивает.
Но холдить деньги, и выдавать квоту запросов на юзера что бы ее потом декриментить и списывать деньги сразу за N запросов это не сложно реализовать.
Да, конечно MVP собираюсь запилить. По транзакциям понял. Но если пользователь готов платить по 1000 запросов в секунду, то я ему открою сейф, ткну в какой угол складировать деньги и сделаю запросы бесплатными😂 Но про холд я реально не догоняю( Вы имеете ввиду что мы заранее списываем не единицу, а сразу 1000 и говорим пользователю что он может делать 1к запросов? ну тогда другой счетчик надо будет инкрементить и все равно с ним сравниваться. Как-то туго у меня с этим всем. Потому и ищу примеры кто как реально на практике это уже реализовывал.
источник

OJ

O . J in Go-go!
Reb Klimrod
Да, конечно MVP собираюсь запилить. По транзакциям понял. Но если пользователь готов платить по 1000 запросов в секунду, то я ему открою сейф, ткну в какой угол складировать деньги и сделаю запросы бесплатными😂 Но про холд я реально не догоняю( Вы имеете ввиду что мы заранее списываем не единицу, а сразу 1000 и говорим пользователю что он может делать 1к запросов? ну тогда другой счетчик надо будет инкрементить и все равно с ним сравниваться. Как-то туго у меня с этим всем. Потому и ищу примеры кто как реально на практике это уже реализовывал.
про холд - ты только условно списываешь сумму за (например?) 1000 запросов, другими словами ты эту часть денег замораживаешь просто, и держишь пользоватеьскую квоту на  1000 запросов, с которым можно работать атомарно (atomic/redis/etc…) не прибегая к транзакциям на каждый запрос, как только квота подошла к 0 (или когда захотелось), списываешь замороженые деньги и выдаешь новую квоту по тому же принципу.  Под квотой подразумевается любое исчисляемое.
источник

RK

Reb Klimrod in Go-go!
O . J
про холд - ты только условно списываешь сумму за (например?) 1000 запросов, другими словами ты эту часть денег замораживаешь просто, и держишь пользоватеьскую квоту на  1000 запросов, с которым можно работать атомарно (atomic/redis/etc…) не прибегая к транзакциям на каждый запрос, как только квота подошла к 0 (или когда захотелось), списываешь замороженые деньги и выдаешь новую квоту по тому же принципу.  Под квотой подразумевается любое исчисляемое.
оу, спасибо за разъяснения. логика теперь вроде понятна
источник

IK

Ilya Kaznacheev in Go-go!
Коллеги, а goland как-то можно настроить поддержку grpc-gateway в протофайлах?
источник