Erlang пул соединений с сервером
У меня есть служба, которая находится в Эрланге. Я пытаюсь подключиться к услуге. Однако иногда создание соединения прерывается. Я считаю, что это может быть потому, что служба может быть занята. Это периодически, при повторном выполнении моей программы через некоторое время она работает хорошо.
Я не уверен, как пул соединений определяется в Erlang. Я пытаюсь разобраться в том же (к сожалению, пока не очень успешно) и хотел бы изменить размер пула соединений. В основном я смотрю, как осуществляется управление соединениями при выполнении команд jsonrpc. Согласно документации, между клиентом и сервером создается только новое соединение. Я пытаюсь определить, как изменить верхний предел для этого, если таковые имеются.
Спасибо
1 ответ
Я не уверен, как пул соединений определяется в Erlang.
В Эрланге есть несколько известных пулов соединений, таких как ранчо и рой, здесь вы можете найти их краткую сводку.
Я пытаюсь определить, как изменить верхний предел для этого, если таковые имеются.
Например, в случае ранчо вы можете установить размер пула соединений следующим образом:
AcceptorNumbers = 100,
{ok, _} = ranch:start_listener(
ListenerRef,
AcceptorNumbers,
Transport, [{port, Port}],
Protocol, Options
).
Также вы можете создать свой собственный пул соединений поверх поведения OTP. Например, пул универсальных конечных автоматов (gen_fsm
), который содержит клиентские соединения и контролируется, может быть таким же простым, как этот учебник.