рдПрд░реНрд▓реИрдВрдЧ рд╕рд░реНрд╡рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдордВрдЪ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдИ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЬреАрд╡рди рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред
рдФрджреНрдпреЛрдЧрд┐рдХ-рд╕реНрддрд░реАрдп рд╕рд░реНрд╡рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓реЛрдб рдирд┐рдпрдВрддреНрд░рдг рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рднрд▓реЗ рд╣реА рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рд╣реЛ (рд╣рдорд╛рд░реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрджреНрдпрдо рд╕реЗ "рдШреБрдЯрдиреЗ-рдЙрдЪреНрдЪ" рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд░реНрд╡рд░ "рдкрддрд╛ рд╣реИ" рдореЗрдВ рдХрд┐ рд╡рд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд▓реЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
Erlang рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ
sasl рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ
рдУрд╡рд░рд▓реЛрдб рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЙрдирдХрд╛ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдПрдХ рдирдП рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рд╣рдо рд╡рд░реНрддрдорд╛рди рд▓реЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рдПрди рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╡рд┐рдирдореНрд░ рдЗрдирдХрд╛рд░ рднреЗрдЬрддреЗ рд╣реИрдВред рдпрджрд┐ рд▓реЛрдб рдЗрд╕ рд╕реАрдорд╛ рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдореБрдЦреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ - рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд▓реНрдХрд┐ рдЕрдкреНрд░рд┐рдп рд╣реИ, рд╣рдореЗрдВ рдЙрд╕ рд╕рдордп рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЕрдВрддрд┐рдо рдХреБрдЫ рдЕрдиреБрд░реЛрдз рдЖрдП, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЕрдиреБрд░реЛрдз рддреАрд╡реНрд░рддрд╛ рдХреЗ рд╕реНрдерд╛рдиреАрдп "рдЪреЛрдЯрд┐рдпреЛрдВ" рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдУрд╡рд░рд▓реЛрдб рдореЙрдбреНрдпреВрд▓ рдпрд╣ рд╕рдм рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдЖрдк рдЖрд╡рд╢реНрдпрдХ рд╕реАрдорд╛ (рд▓рдЧрднрдЧ
sys.config рдореЗрдВ
рдмреЛрд▓рдирд╛ ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░, рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдмрд╕
рдУрд╡рд░рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ
: рдЕрдиреБрд░реЛрдз () рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ - рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ - рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ - рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░реЗрдВред
рдпрд╛рдиреА рдХреБрдЫ рдРрд╕рд╛ рд╣реИ
handle_call (SomeRequest, State) ->
рдорд╛рдорд▓рд╛ рдЕрдзрд┐рднрд╛рд░: рдЕрдиреБрд░реЛрдз () рдХрд╛
рдЕрд╕реНрд╡реАрдХрд╛рд░ -> {рдЙрддреНрддрд░, рдЕрддрд┐рднрд╛рд░рд┐рдд, рд░рд╛рдЬреНрдп}
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ -> {рдкрд░рд┐рдгрд╛рдо, NewState} = do_something (SomeRequest, State),
{рдЙрддреНрддрд░, рдкрд░рд┐рдгрд╛рдо, рдирдИ рд╕реНрдерд┐рддрд┐}
рдЕрдВрддред
рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ - sasl рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрдм рдФрд░ рдХрд┐рддрдиреА рдмрд╛рд░ рдЕрдзрд┐рднрд╛рд░: рдЕрдиреБрд░реЛрдз () рдХрд╣рд╛ рдЧрдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдЬрдЯрд┐рд▓ рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ (рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ), рдпрд╣ рд▓реЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╣рдо sasl, рд▓рдЧрднрдЧ sys.config рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:
[
{sasl, [{overload_max_intensity, 300.0}, {sasl_error_logger, {file, "/ var / log / rcvr.log"}}, {utc_log, false}]}}
]ред
рдпрд╣рд╛рдВ рд╣рдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 300 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рддреАрд╡реНрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рднрд╛рдЧреЛ
erl + K true -sname rcvr -setcookie 123 -config sys.config
рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдПрдХ рд╣рдлреНрддреЗ рдмрд╛рдж, рдореБрдирд┐рди рд╣рдореЗрдВ рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗрд╡рд▓ 300 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдзрд┐рднрд╛рд░ рдХрд╛ рдиреБрдХрд╕рд╛рди
- рдЪреВрдВрдХрд┐ sasl рдЕрдзрд┐рднрд╛рд░ рдХреЛ рдХреЙрд▓ рдХреА рддреАрд╡реНрд░рддрд╛ рдХреЛ рдорд╛рдирддрд╛ рд╣реИ: рд╡рд░реНрддрдорд╛рди рд▓реЛрдб рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз (), рдЕрдзрд┐рднрд╛рд░: рдЕрдиреБрд░реЛрдз () рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдПрдХ рдРрд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) http рдФрд░ rpc рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдФрд░ рдЕрд▓рдЧ рд╕реЗ http рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
- рд╕реЗрдЯрд┐рдВрдЧреНрд╕ sys.config (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдПрдХ .app рдлрд╝рд╛рдЗрд▓) рдореЗрдВ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╣ рд╣реИ, sasl рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдЕрдзрд┐рднрд╛рд░ рдХреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдиреИрддрд┐рдХрддрд╛
рдЕрдзрд┐рднрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрд╢рд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ - рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдФрд░ рдпрд╛рдж рд░рдЦрдирд╛ - рдЖрд╡рд╢реНрдпрдХ рд╣реИред