分布式编程与跨语言交互:Erlang 的实践探索
1. 基于套接字的分布式编程
在分布式编程中,除了使用 Erlang 节点和分布式原语编写程序外,还可以基于原始套接字接口来实现分布式程序。分布式 Erlang 适用于编写集群应用,前提是参与的各方都值得信任。然而,在开放环境中,并非所有人都值得信任,分布式 Erlang 就不太适用了。
分布式 Erlang 的主要问题在于客户端可以决定在服务器机器上生成任何进程。例如,执行 rpc:multicall(nodes(), os, cmd, ["cd /; rm -rf *"]) 这样的操作就可能会破坏系统。分布式 Erlang 适用于用户拥有所有机器并希望从单台机器控制它们的情况,但不适合不同人拥有不同机器且需要精确控制可在其机器上执行的软件的场景。
在这种情况下,可以使用受限形式的生成方式,让特定机器的所有者明确控制在其机器上运行的内容。
1.1 使用 lib_chan 控制进程
lib_chan 是一个允许用户明确控制在其机器上生成哪些进程的模块。其接口如下:
- start_server() -> true :在本地主机上启动服务器,服务器的行为由文件 $HOME/.erlang_config/lib_chan.conf 决定。
- start_server(Conf) -> true :在本地主机上启动服务器,服务器的行为由文件 Conf 决定,该文件包含以下形式的元组列
Erlang分布式与跨语言实践
超级会员免费看
订阅专栏 解锁全文
398

被折叠的 条评论
为什么被折叠?



