微服务开发过程中访问乱窜的问题

Blade 未结 3 1398
lfzihao
lfzihao 剑圣 2021-04-09 11:14

我们的服务一部分是在服务器上比如ip1,一部分是在开发机器上运行比如ip2,

现在ip1上运行着gateway、aserver、bserver、cserver......

ip2上运行着gateway、bserver

现在有人访问了ip1上的gateway路由到a服务,a服务再调用b服务,我把ip1上的gateway配置上blade.ribbon.rule.prior-ip-pattern: ip1

确实可以保证ip1上的gateway优先路由到ip1上的aserver,但是无法保证ip1上aserver访问bserver也是访问ip1上的bserver,有时会发到ip2的b服务上。

我的期望是ip1上的微服务优先调用ip1,没有再去先ip2

ip2上的微服务优先调用ip2没有再去先ip1,

目前gateway可以按照预设的优先进行路由,但是后面的服务如果有还远程调用怎么控制优先


3条回答
  • 2021-04-09 12:00

    这个完全是 ok 的,不要设置死。


    正式环境都建议把 blade.ribbon.rule 关掉,只在内网开发时使用。


    内网不需要纠结 ip 的链路,条条大路通罗马,避免过多的请求落到某台机器上。

    2 讨论(0)
  • 2021-04-09 11:58

    兄弟,微服务负载均衡是由Ribbon实现的,不是由Gateway实现的


    而且负载均衡也是生产环境中必要的。所有流量都先打到一台机器上,这种做法是很不合理的。


    你的这种需求可以尝试自定义负载均衡规则,自己继承AbstractLoadBalancerRule这个类。

    0 讨论(0)
  • 2021-04-09 17:05

    不仅仅是Gateway,你的微服务也要加上ribbon的配置

    而且上面两位说的很对,也推荐看一下

    0 讨论(0)
提交回复