跨应用程序实例和BEAM的唯一代理

时间:2018-09-01 08:52:27

标签: erlang elixir agent gen-server

我的要求是使用命名代理。基本上,每条记录都有一个具有自定义ID的代理。我们可以跨应用程序实例和BEAM查询代理的名称吗?我的意思是,如果我们在2台不同的BEAM机器上有一个应用程序的2个实例,则需要确保每个记录只有one个代理。不多。我该如何实现?

1 个答案:

答案 0 :(得分:1)

Agent基本上是GenServer。后者具有register it’s name的三个选项。 {:via, module, term} {:global, name}都全局注册了名称

当然,应该连接所有节点以使其正常工作。

为了使寻址全球注册的过程更容易,尽管在这种情况下,{{1}}应该足够好,但可以使用Registry