微服务间调用主要有springcloud和Dubbo两种,有时,小型项目或者服务器条件限制,多个服务组件可能打包为一个单体项目,或者打包为少数微服务,也可能所有服务组件单独打包为很多服务。那么服务间调用时,springcloud或dubbo能否动态的判断,如果是本地就直接依赖了性能更好,如果是远程再走远程调用机制,程序代码不动,能实现吗?
程序代码怎么写呢?
微服务间调用主要有springcloud和Dubbo两种,有时,小型项目或者服务器条件限制,多个服务组件可能打包为一个单体项目,或者打包为少数微服务,也可能所有服务组件单独打包为很多服务。那么服务间调用时,springcloud或dubbo能否动态的判断,如果是本地就直接依赖了性能更好,如果是远程再走远程调用机制,程序代码不动,能实现吗?
程序代码怎么写呢?
2 回答4.1k 阅读
2 回答1.4k 阅读
springcloud eureka 有 region,zone 的概念。 ribbon 在负载均衡的时候,会倾向于在 同一个 zone 的服务提供者,如果该 zone 下没有对应的服务提供者,那么就会去调用别的 zone 下的服务提供者,或许这个可以解决你的问题。
具体的做法可参考,该作者写的 eureka 分区 eureka 分区
ribbon 相关的资料,可以参考,我写的文章 ribbon