Spring Cloud Gateway/Zookeeper的非Java发现注册



最重要的一点:是否有一种方法可以在Zookeeper中支持非Java发现客户端创建的实例,同时提供自定义元数据。

我正在构建一个Spring Cloud API网关。我们的大部分路线都使用Zookeeper发现和Spring Cloud负载均衡器。它适用于Java微服务。除了正常的发现和负载平衡之外,我还想使用元数据来指定自定义属性;比如安全性和速率限制参数。

我需要介绍一些用Python编写的非Java服务,所以我想对它们使用发现,因为它们托管在动态集群中。在这种情况下,如果我能让它做我需要的事情,那么继续使用Zookeeper对我们来说意义重大。

我已经检查了Zookeeper/services节点的内容,以了解发生了什么,我能够复制其中的大部分内容,并实际实现发现和负载平衡,但元数据更深,我无法实现,因为它嵌入了Curator/Zookeeper特定的对象中。

我想我已经知道了足够的知识来编写我自己的DiscoveryClient实现并返回我自己的ServiceInstance,但如果我几乎可以使用我已经拥有的,那似乎是一项艰巨的工作。我还必须为此编写Python客户端。

如果ObjectMapper不能自动识别ZookeeperInstance,我通过重新实现InstanceSerializer手动构建ZookeeperInstance来解决这个问题。

相关内容

  • 没有找到相关文章

最新更新