微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Spring Cloud Gateway / Zookeeper的非Java发现注册

底线:有没有一种方法可以在Zookeeper中支持非Java discovery客户端创建的实例,同时提供自定义元数据。

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

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

我已经检查了Zookeeper / services节点的内容以查看发生了什么,并且我能够复制其中的大部分内容并真正使发现和负载平衡起作用,但是元数据更深入了,我可以使其无法工作,因为它已嵌入到Curator / Zookeeper特定对象中。

我想我足够了解编写自己的reduce实现并返回自己的let obj = {firstname: 'John',lastname: 'thomas',age: 26}; let keys = ["firstname","age"]; let string = keys.map(curr => obj[curr]).join(" - "); console.log(string);功能,但是如果我几乎可以使用已经拥有的功能,这似乎是很多工作。我还必须为此编写Python客户端。

解决方法

如果InstanceSerializer无法自动识别ZookeeperInstance,我通过重新实现ObjectMapper来手动构建ZookeeperInstance来解决此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。