ublog

erlang: викликаємо функції на інших нодах - частина 1

programming [38]erlang [37]

erlang distributed частина 1

для початку у нас є дві ерланг ноди на одному сервері -
node1 та node2

памятаємо про одинакові куки в файлах налаштувань vm.args обох ерланг нод
-name node1@127.0.0.1
-setcookie GHtrh59u8t9r8furojf984u
...


-name node2@127.0.0.1
-setcookie GHtrh59u8t9r8furojf984u
...

нагадування --
ерланг куки - параметр безпеки,
їх варто зробити складними, довгими та тримати в таємниці

після перезапуску обох ерланг нод
(з "вбиванням" процесу epmd)
ми можемо підєднатись до node1 ,
викликати функцію test_function/2 з модуля node2_test_module на ноді node2 ,
та отримати результат, вичислений на іншій ерланг ноді
rpc:call('node2@127.0.0.1', node2_test_module, test_function, [ test_atom, [{<<"some_key1">>, <<"some_value1">>}, {<<"some_key2">>, <<"some_value2">>}] ])

параметрами, переданими в функцію, будуть атом та список-proplist з двома парами key-value

нагадування --
ерланг ноди можуть бути на різних серверах,
і також будуть спокійно обмінюватись даними :)


посилання по темі --
http://erlang.org/doc/man/rpc.html#call-4
https://learnyousomeerlang.com/distribunomicon
https://toster.ru/q/73386

далі буде :)