Erlang пул соединений с сервером

У меня есть служба, которая находится в Эрланге. Я пытаюсь подключиться к услуге. Однако иногда создание соединения прерывается. Я считаю, что это может быть потому, что служба может быть занята. Это периодически, при повторном выполнении моей программы через некоторое время она работает хорошо.

Я не уверен, как пул соединений определяется в Erlang. Я пытаюсь разобраться в том же (к сожалению, пока не очень успешно) и хотел бы изменить размер пула соединений. В основном я смотрю, как осуществляется управление соединениями при выполнении команд jsonrpc. Согласно документации, между клиентом и сервером создается только новое соединение. Я пытаюсь определить, как изменить верхний предел для этого, если таковые имеются.

Спасибо

1 ответ

Я не уверен, как пул соединений определяется в Erlang.

В Эрланге есть несколько известных пулов соединений, таких как ранчо и рой, здесь вы можете найти их краткую сводку.

Я пытаюсь определить, как изменить верхний предел для этого, если таковые имеются.

Например, в случае ранчо вы можете установить размер пула соединений следующим образом:

AcceptorNumbers = 100,
{ok, _} = ranch:start_listener(
    ListenerRef, 
    AcceptorNumbers,
    Transport, [{port, Port}],
    Protocol, Options
).

Также вы можете создать свой собственный пул соединений поверх поведения OTP. Например, пул универсальных конечных автоматов (gen_fsm), который содержит клиентские соединения и контролируется, может быть таким же простым, как этот учебник.

Другие вопросы по тегам