Serverless 应用引擎关于调用的问题请教一下?-[阿里云_云淘科技]

Serverless 应用引擎我python的rest服务,java去调用,java服务注册在nacos上的,python服务注册在k8s上的,feign或者其他方式是不是不能调的通?如果可以的话,通过什么调用?k8的服务名?

以下为热心网友提供的参考意见

在您的场景中,Python 的 REST 服务注册在 K8s 上,而 Java 服务注册在 Nacos 上。要实现 Java 服务调用 Python 服务,您需要确保两者之间的通信是可达的。

以下是一些可能的方法来实现这一目标:
1.直接调用:如果 Python 的 REST 服务已经暴露了外部端口并且可以被外部访问,Java 可以通过其服务名和相应的端口直接调用 Python 服务。
2.服务发现:如果您的 K8s 和 Nacos 环境支持服务发现,Java 服务可以通过 Nacos 发现 Python 服务,并直接调用。
3.使用负载均衡器:在某些情况下,您可能需要使用负载均衡器来统一管理和转发请求。这样,Java 服务可以发送请求到负载均衡器,而负载均衡器会根据需要将请求转发到 Python 服务。
4.使用 API Gateway:如果您的项目允许,您可以使用 API Gateway 来集中管理和路由请求。这样,Java 服务可以向 API Gateway 发送请求,API Gateway 负责将请求转发到正确的服务。
5.使用 Feign:Feign 是一个声明式的 Web Service 客户端,使得编写 Web Service 客户端变得更加简单。但是,为了使用 Feign,您需要确保您的服务都支持 HTTP 协议。如果 Python 的 REST 服务支持 HTTP 协议,您可以使用 Feign 在 Java 中进行调用。

至于“k8的服务名”,您是指 K8s 中 Python 服务的服务名吗?如果是这样,您需要知道该服务的服务名(通常与 Pod 名称或部署名称相关),然后使用该服务名进行调用。

以下为热心网友提供的参考意见

在您的场景中,您希望使用Java调用Python的REST服务,而这个Python服务部署在K8s上,并且Java服务注册在Nacos上。对于这种情况,虽然Feign是一个常用的微服务调用工具,但直接使用Feign来调用可能并不可行。这是因为Feign主要用于Spring Cloud微服务体系内,而且它的服务发现机制通常是基于Eureka或Ribbon来实现的。

考虑到您的情况,一个可行的方案是让Python服务也注册到Nacos上,然后让Java服务通过Nacos来发现并调用Python服务。这种方式可以确保服务的发现和负载均衡都是基于Nacos来完成的。另外,由于K8s上部署的服务和Nacos之间的网络通信可能会受到限制,您可能需要在它们之间设置适当的网络策略或者使用Service Mesh技术(如Istio)来确保通信的顺畅。

以下为热心网友提供的参考意见

如果是同一个命名空间,网络是互通的话,应该是可以调通的。对,你可以webshell登陆到java,然后ping一下看看能不能通,如果能通的话,至少http方式肯定是能调度的。http内网调用服务名+端口就行了。此回答整理自钉群“【3群】Serverless应用引擎(SAE)用户群”

本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/19284.html

(0)
匿名
上一篇 2024年1月5日
下一篇 2024年1月5日

相关推荐

新手站长从“心”出发,感谢16年您始终不离不弃。