使用gremlin驱动程序实现负载均衡

时间:2018-07-24 20:47:05

标签: java tinkerpop3 janusgraph gremlin-server

几天前,Google发布了这篇文章: https://cloud.google.com/blog/big-data/2018/07/developing-a-janusgraph-backed-service-on-google-cloud-platform

我们可以从那里了解到,通常将janus图作为内部负载均衡器后面的单独实例进行部署。

因此,在我的项目中,我们有几乎相同的体系结构:bigtable,带有janus的gke和一些通过负载平衡器调用janus的应用程序。唯一的区别(不重要,dunno,我们没有内部负载均衡器,我们有“ external(?)”一个)

所以。问题是:在Java应用程序中使用gremlin驱动程序时,负载平衡的状态是什么?我们的研究表明,它不起作用。由于连接是有状态的,因此吞吐量不会随机转发到janus副本。当它粘在一个副本上时,它将一直保留到该特定副本中。 但是,当副本被终止时,连接将以某种方式挂起,没有任何异常,警告,日志等任何内容。就像根本没有有关连接状态的信息一样。如果我们假设有一个自动负载平衡器会在需要时分出额外的副本,那将是一个不好的原因。

我们将janus图0.21与相应的tinkerpop驱动程序3.2.9结合使用(但是我们尝试了许多不同的组合),但架构仍然保持不变。负载平衡对我们不起作用,当某些吊舱被杀死时,也无法进行故障转移。 -更糟糕的是,它并不是真正的确定性-我们已经进行了一些测试,但当过一会儿再返回该测试时,结果却没有。

您,stackoverflowers知道这个问题的状态是什么吗?

0 个答案:

没有答案