SpringCloud 整合 Python 服务
SpringCloud提供了一个组件Sidecar,可以将非Java的微服务整合到SpringCloud中,本质就是建立一个Sidecar工程作为代理,Sidecar工程注册到Eureka服务,同时Sidecar工程调用非Java微服务的Http接口。
吐槽:看了很多博客,都是举得一个Python微服务的例子,如果Python只有一个服务,而不是分布式的服务,直接通过Rest调用就完了,何必还要用Sidecar代理一下,绕了一圈,SpringCloud的初衷就是为了治理分布式应用,实际上是用不上SpringCloud的。
言归正传,如果是分布式的话,思路也很简单,以Python为例,为每一个Python微服务副本都启动一个Sidecar应用即可。
非Java微服务有一个条件,必须给Sidecar提供一个用于检查其健康状态的接口,这个接口需要返回 {“status”:“UP”} 固定返回值,配置完毕后,Python微服务就可以像Java Eureka客户端一样调用。
对于Python调用Java微服务如果需要考虑分布式的调用,可以看看Python有没有相关的包,可以实现Http负载均衡调用。