【发布时间】:2015-03-05 06:03:07
【问题描述】:
我们的基础架构中有一些非 erlang 连接的集群,目前使用 term_to_binary 对集群之间消息的 erlang 术语进行编码。在接收端,我们使用 binary_to_term(Bin, [safe]) 仅转换为现有原子(如果消息中有任何原子)。
偶尔(尤其是在启动新的集群/堆栈之后),我们会遇到消息中编码的部分已知原子的问题,即发送集群知道这个原子,但接收不知道。这可能是由于各种原因,最常见的是接收节点根本没有加载包含某些记录定义的模块。我们目前采用了一些令人讨厌的变通方法,基本上相当于维护一个简短的可能使用的原子列表,但我们对这种容易出错的方法不太满意。
有没有一种聪明的方法可以在这些集群之间共享原子?还是建议不要将二进制格式用于此类目的?
期待您的见解。
【问题讨论】:
标签: erlang