欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring cloud(七) 均衡负载

程序员文章站 2022-07-15 10:54:02
...

现在我们有了服务提供者+网关,这里我们简单实现下均衡负载。就是在不同的端口启动同一个项目。我们现在8000端口启动一个:

server:
  port: 8000
spring:
  application:
    name: test-producer
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        serviceName: ${spring.application.name}	# 注册到consul的服务名称

在服务中心看到启动成功:

spring cloud(七) 均衡负载

我们访问下 test1路径:

spring cloud(七) 均衡负载

 看到显示的我们的hello,world。

我们再修改个端口:

server:
  port: 8001
spring:
  application:
    name: test-producer
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        serviceName: ${spring.application.name}	# 注册到consul的服务名称

把 hello,world改成hello,world2,然后再启动:

spring cloud(七) 均衡负载

那是怎么实现均衡负载呢?在网关(https://blog.csdn.net/qq_21454973/article/details/89022146)里配置:

zuul:
  routes:
    test:
      path: /test/**
      serviceId: test-producer

启动网关,访问http://localhost:8010/test/test1

spring cloud(七) 均衡负载

刷新下页面:

spring cloud(七) 均衡负载

变成2了

反复访问 http://localhost:8010/test/test1,结果交替返回服务8000和8001,因为默认的负载均衡器是采用轮询的方式。

可以看下服务中心:

spring cloud(七) 均衡负载

点进去: 

spring cloud(七) 均衡负载

 

这里是在网关里通过映射URL的方式调用的,之前有篇文章是Feign方式调用的,也可以尝试下。

实际上就是在服务中心里找名字是test-producer的节点然后轮询。也可以有其他的调用方式,配置百度一下即可。

这样当一个节点挂掉以后还可以调用第二个节点。

告辞!