Я предполагаю, что вы, вероятно, имели в виду replicated
таблицу. Предположим, у вас есть таблица mnesia на узле: nodea@127.0.0.1
с -setcookie <b>mycookie</b>
, независимо от того, реплицирована ли она на другом узле или нет, если я хочу получить доступ к записям с другого терминала, тогда я должен использовать erlang и на этом другом терминале создав узел, соединив этот узел с нашим узлом с помощью таблицы (вы гарантируете, что у них всех одинаковые файлы cookie), затем вы вызываете метод на удаленном узле.
Допустим, вы хотите использовать метод add_record
в модуле mydatabase.erl
на узле nodea@127.0.0.1
с таблицей mnesia, я открываю терминал linux и ввожу следующее:
$ erl -name remote@127.0.0.1 -setcookie mycookie
Eshell V5.8.4 (abort with ^G)
1> N = 'nodea@127.0.0.1'.
'nodea@127.0.0.1'
2> net_adm:ping(N).
pong
3> rpc:call(N,mydatabase,add_record,[RECORD]).
{atomic,ok}
4>
с этим модулем (rpc
) вы можете вызывать любой метод на удаленном узле, если два узла соединены с использованием одного и того же файла cookie. начать с вызова этого метода на удаленном узле:
rpc:call('nodea@127.0.0.1',mnesia,info,[]).
Он должен отображать все в вашем удаленном терминале. Я полагаю, что вы, вероятно, сначала пройдете эту лекцию:
Распределенное программирование на эрланге , а затем вы сможете увидеть, как управляются реплицированные таблицы мнезии. Пройдите весь учебник по этому домену.