Size: a a a

2021 February 01

IK

Ihor Katkov in pro.elixir
Bogdan
https://www.cloudamqp.com/blog/2018-01-08-part2-rabbitmq-best-practice-for-high-performance.html

“eep your queue short (if possible)
To get optimal performance, keep queues as short as possible. Longer queues require more processing overhead. We recommend that queues always stay around 0 for optimal performance.”
Processing overhead. Это же явно на стороне консьюмера
источник

B

Bogdan in pro.elixir
Ihor Katkov
Processing overhead. Это же явно на стороне консьюмера
Ну да на стороне консумера выростут затраты, если очередь держать полной. Как они утверждают.
источник

B

Bogdan in pro.elixir
Lama Lover
Если у тебя один продьюсер, то ничего масштабировать не получится, он будет бутылочным горлышком
Если у тебя несколько продьюсеров, то гарантировать отсутствие дублей на стороне продьюсера будет очень сложно

Самый простой вариант — добавить гарантию того, что одно и то же сообщение попадёт в один и тот же консьюмер (например, шардирование) и, как сказал @maxlapshin , читать идемпотентно, запоминая прочитанные сообщения (не обязательно все, можно очищать старые запо

И вообще, зачем тут кролик. Сделать пулл модель — консьюмеры делают REST запрос в продьюсер когда они ничего не обрабатывают (или обработка вот-вот кончится), REST это совсем не дорого, особенно учитывая что практически любой http-клиент в наше время умеет держать соединение и инициировать его с tcp fast open
По поводу почему не рест а очередь, раскатать кластер RMQ дело достаточно простое.  Поддержки он не требует, просто очередь которая работает. И используя его я не сильно переживаю если у меня дропнется сервис который работает с БД (он же продюсит сообщения), как поднимется почитает очередь и готово. И так же не переживаю, что будет если там что-то на стороне консумера заест.
источник

VS

Vladimir Sekisov in pro.elixir
Bogdan
https://www.cloudamqp.com/blog/2018-01-08-part2-rabbitmq-best-practice-for-high-performance.html

“eep your queue short (if possible)
To get optimal performance, keep queues as short as possible. Longer queues require more processing overhead. We recommend that queues always stay around 0 for optimal performance.”
Имеется в виду, так понимаю,
что при разрастании очереди
на кролике, он начнет скидывать ее на диск,
естественно станет лагать,
таская туда-сюда, потому
либо обеспечивайте его
достаточным количеством
консьюмеров, либо ставьте
подходящий TTL.
источник

DP

D. P. in pro.elixir
Вдруг начал выяснять замену  капибаре.
В интернетах советуют wallaby и hound.
Выяснять что лучше - это срач или есть нюансы?
источник

DP

D. P. in pro.elixir
Конкретно мой случай сейчас:
есть пачка микросервисов на разных языках, один из них выдаёт вебморду.
Надо написать отдельное приложение, которое тестирует разные поведения пользователей.
источник

DP

D. P. in pro.elixir
Если кто может подсказать из опыта, большое спасибо заранее, очень надо.
источник

B

Bogdan in pro.elixir
Vladimir Sekisov
Имеется в виду, так понимаю,
что при разрастании очереди
на кролике, он начнет скидывать ее на диск,
естественно станет лагать,
таская туда-сюда, потому
либо обеспечивайте его
достаточным количеством
консьюмеров, либо ставьте
подходящий TTL.
Звучит логично.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
D. P.
Конкретно мой случай сейчас:
есть пачка микросервисов на разных языках, один из них выдаёт вебморду.
Надо написать отдельное приложение, которое тестирует разные поведения пользователей.
А что, wallaby умеет в интеграцию?
источник

DP

D. P. in pro.elixir
пишут, что он умееь phantomjs
источник

DP

D. P. in pro.elixir
по факту я не совсем тесты пишу в классическом понимании
источник

DP

D. P. in pro.elixir
это отдельное приложение
источник

ŹR

Źmićer Rubinštejn in pro.elixir
бери hound если на эликсире - альтернатив я думаю нету
источник

DP

D. P. in pro.elixir
понел, спасибо
источник

((

(fun () -> ()) in pro.elixir
у меня нет в тестах базы, но при запуске теста оно мне пишет что не может подсоединится к базе. Как убрать базу из тестов?
источник

AN

Alexey Novoselov in pro.elixir
(fun () -> ())
у меня нет в тестах базы, но при запуске теста оно мне пишет что не может подсоединится к базе. Как убрать базу из тестов?
в application.ex убрать из children основного супервизора MyApp.Repo
источник

((

(fun () -> ()) in pro.elixir
Alexey Novoselov
в application.ex убрать из children основного супервизора MyApp.Repo
помогло, спасибо, а как автоматически это убирать?
источник

AN

Alexey Novoselov in pro.elixir
(fun () -> ())
помогло, спасибо, а как автоматически это убирать?
if Mix.env() != : test
источник

((

(fun () -> ()) in pro.elixir
Alexey Novoselov
if Mix.env() != : test
благодарю
источник

AL

Anton Lapshin in pro.elixir
Alexey Novoselov
if Mix.env() != : test
а не шлёпнется ли потом в продакшне?
источник