我正在尝试在 Corda V4.0 中开发应用程序,并且我们正在使用客户端 RPC API 进行测试(使用 DriverDSL)。
我的解决方案有一个带有 2 个公证人的 Raft 集群来测试 HA。我还使用观察者(在公证人节点中)实现了一个解决方案,因此公证人将所有交易记录在他的保险库中。
当我发送了几笔交易时,行为并不像预期的那样:一些交易记录在公证集群 1 中,而另一笔交易记录在公证集群 2 中。
好吗?我希望所有交易都保存在两个公证集群中,否则 Corda 如何解决 HA?
谢谢
最佳答案
我们在 Corda 实时支持 [1] 上提出了这个问题,我们得到了答案:
这种行为是 Corda 所期望的。在 Notary 集群中复制的唯一数据是公证所需的。此内置集群支持不适用于 HA。
为了实现 HA,他们建议我们使用负载均衡器,并且我们有两个或更多节点将负载均衡器的 IP 作为公共(public) IP 发布。两个节点都应该使用相同的数据库(可能是 Postgres)。
总之,HA 应该在 Corda 之外解决。
他们还建议我们查看 Corda Enteprise [2] 中“热冷高可用性部署”的文档,特别是负载均衡器配置部分。
关于cluster-computing - Corda 4.0 - 集群中的 Notary 以实现高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56223831/