首页 > 解决方案 > Corda 4.0 - 集群中的 Notary 以实现高可用性

问题描述

我正在尝试在 Corda V4.0 中开发应用程序,并且我们正在使用客户端 RPC API 进行测试(使用 DriverDSL)。

我的解决方案有一个带有 2 个公证人的 Raft 集群来测试 HA。我还使用观察者(在公证人节点中)实施了一个解决方案,因此公证人将所有交易记录在他的保险库中。

当我发送了几笔交易时,行为并不像预期的那样:一些交易记录在公证集群 1 中,而另一笔交易记录在公证集群 2 中。

好吗?我希望所有交易都保存在两个公证集群中,否则 Corda 如何解决 HA?

谢谢

标签: cluster-computingrpccorda

解决方案


我们在 Corda 实时支持 [1] 上提出了这个问题,我们得到了答案:

这种行为是 Corda 所期望的。在 Notary 集群中复制的唯一数据是公证所需的。此内置集群支持不适用于 HA。为了实现 HA,他们建议我们使用负载均衡器,并且我们有两个或更多节点将负载均衡器的 IP 作为公共 IP 发布。两个节点都应该使用相同的数据库(可能是 Postgres)。

总之,HA 应该在 Corda 之外解决。他们还建议我们查看 Corda Enteprise [2] 中“热冷高可用性部署”的文档,特别是负载均衡器配置部分。

  1. https://www.corda.net/participate/community.html
  2. https://docs.corda.r3.com/hot-cold-deployment.html#configuring-the-load-balancer

推荐阅读