Size: a a a

2020 October 11

00

0JLQuCDQotGP0L0= 0x3... in Go-go!
Anton Kucherov
Даже не вроде, а точно. И он это делает по умолчанию. Я вот даже спецом отключаю эту фичу, потому что привык видеть эти блоки.
Я в первый раз когда увидел такое, подумал, что что-то упустил из знаний о синтаксисе
источник

ВС

Владимир Столяров... in Go-go!
Slava
Всем привет ! Расскажите, пожалуйста, если используете брокеры сообщений в go-приложениях,  для чего ?
Ранее я писал на пхп, и там я использовал их для выполнения «большой» работы, чтобы пользователь не ждал. В го, как мне кажется это можно разрулить на уровне рутин/каналов ( выделить канал, который будет «слушать» задания для такой «работы» и выполнять независимо от запроса )
Не всегда. Каналы хоть и выполняют функцию очередей, но не персистентны. А в моем случае, например, очень важно, чтобы сообщения не терялись при рестарте приложений
источник

АД

Алексей Долгов... in Go-go!
Slava
Всем привет ! Расскажите, пожалуйста, если используете брокеры сообщений в go-приложениях,  для чего ?
Ранее я писал на пхп, и там я использовал их для выполнения «большой» работы, чтобы пользователь не ждал. В го, как мне кажется это можно разрулить на уровне рутин/каналов ( выделить канал, который будет «слушать» задания для такой «работы» и выполнять независимо от запроса )
Масштабироваться легче когда есть отдельное веб-приложение которое кидает в очередь работы, а есть отдельный воркер который обрабатывает. Соответственно в зависимости от требований могут быть например 2 веб-приложения и 7 воркеров и одна очередь
источник

D

Denis in Go-go!
Алексей Долгов
Масштабироваться легче когда есть отдельное веб-приложение которое кидает в очередь работы, а есть отдельный воркер который обрабатывает. Соответственно в зависимости от требований могут быть например 2 веб-приложения и 7 воркеров и одна очередь
Неправда что легче, в некоторых кейсах более правильно это да. А что будете делать если очередь не успевают обрабатывать? Надо прикрутить мониторинг очереди и скейлить воркеров когда в очереди много необработанных
Легче убрать из уравнения очередь где она не нужна тогда твои сервисы будут сами скейлиться on demand
источник

АД

Алексей Долгов... in Go-go!
Denis
Неправда что легче, в некоторых кейсах более правильно это да. А что будете делать если очередь не успевают обрабатывать? Надо прикрутить мониторинг очереди и скейлить воркеров когда в очереди много необработанных
Легче убрать из уравнения очередь где она не нужна тогда твои сервисы будут сами скейлиться on demand
не очень понял насчет убрать очередь. Где задачи будут храниться?
источник

АД

Алексей Долгов... in Go-go!
Denis
Неправда что легче, в некоторых кейсах более правильно это да. А что будете делать если очередь не успевают обрабатывать? Надо прикрутить мониторинг очереди и скейлить воркеров когда в очереди много необработанных
Легче убрать из уравнения очередь где она не нужна тогда твои сервисы будут сами скейлиться on demand
скейлинг воркеров надо на стороне оркестрации решать где то наверное, если это возможно. неконтролируемый скейлинг может высосать много денег, надо быть аккуратнее с этим
источник

ЕО

Евгений Омельченко... in Go-go!
Slava
Всем привет ! Расскажите, пожалуйста, если используете брокеры сообщений в go-приложениях,  для чего ?
Ранее я писал на пхп, и там я использовал их для выполнения «большой» работы, чтобы пользователь не ждал. В го, как мне кажется это можно разрулить на уровне рутин/каналов ( выделить канал, который будет «слушать» задания для такой «работы» и выполнять независимо от запроса )
Зависит от логики приложения. Сообщения, которые можно потерять, можно и на каналах сделать, а какие-то важные лучше через брокер. Тут важно думать: а что произойдёт, если моё приложение упадёт? Что будет, если я запущу два инстанса?
источник

ЕО

Евгений Омельченко... in Go-go!
Алексей Долгов
скейлинг воркеров надо на стороне оркестрации решать где то наверное, если это возможно. неконтролируемый скейлинг может высосать много денег, надо быть аккуратнее с этим
А неконтролируемого не бывает вообще, у любого клауд-провайдера при создании автоскейлинга есть обязательное поле max instances
источник

АД

Алексей Долгов... in Go-go!
Коллеги, а есть ли в Go способ увеличить буфер канала буферизированного? чтобы например если не можешь записать в канал, увеличивать его буфер?
источник

DP

Daniel Podolsky in Go-go!
Нет
источник

DP

Daniel Podolsky in Go-go!
А зачем? Сделать поведение непредсказуемым?
источник

AZ

Artem Zheltak in Go-go!
Алексей Долгов
Коллеги, а есть ли в Go способ увеличить буфер канала буферизированного? чтобы например если не можешь записать в канал, увеличивать его буфер?
Мы при такой поставке собирали в  батчи внутри слайса, можно внутри sync.Pool если заморочится
источник

АД

Алексей Долгов... in Go-go!
Ну типа если есть очередь, для нее буферизированный канал. и очень не хочится ловить локи когда не можешь добавить в этот канал что-то
источник

ЕА

Егор Андреевич... in Go-go!
ну так поставь длину буфера 99999999999999 че уж там 🙂
источник

DP

Daniel Podolsky in Go-go!
Сделайте канал по-больше
источник

IS

Ilya Sinelnikov in Go-go!
И съешьте всю память. Кто-то где-то как-то должен тротлить процессинг
источник

ЕА

Егор Андреевич... in Go-go!
тротлить - согласен, но решение выше - это не троттлинг
источник

ЕА

Егор Андреевич... in Go-go!
ну и в целом тут кажетсся проблема не в канале
источник

IS

Ilya Sinelnikov in Go-go!
Я к тому, что размер канала - не панацея. Рано или поздно его не хватит. А увеличивать его бесконечно нельзя
источник

ЕО

Евгений Омельченко... in Go-go!
Ilya Sinelnikov
Я к тому, что размер канала - не панацея. Рано или поздно его не хватит. А увеличивать его бесконечно нельзя
+
источник