微服务调用能否自动判断是本地请求还是远程的?

微服务间调用主要有springcloud和Dubbo两种,有时,小型项目或者服务器条件限制,多个服务组件可能打包为一个单体项目,或者打包为少数微服务,也可能所有服务组件单独打包为很多服务。那么服务间调用时,springcloud或dubbo能否动态的判断,如果是本地就直接依赖了性能更好,如果是远程再走远程调用机制,程序代码不动,能实现吗?
程序代码怎么写呢?

阅读 2.5k
1 个回答

springcloud eureka 有 region,zone 的概念。 ribbon 在负载均衡的时候,会倾向于在 同一个 zone 的服务提供者,如果该 zone 下没有对应的服务提供者,那么就会去调用别的 zone 下的服务提供者,或许这个可以解决你的问题。

具体的做法可参考,该作者写的 eureka 分区 eureka 分区

ribbon 相关的资料,可以参考,我写的文章 ribbon

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进