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的服务名称
在服务中心看到启动成功:
我们访问下 test1路径:
看到显示的我们的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,然后再启动:
那是怎么实现均衡负载呢?在网关(https://blog.csdn.net/qq_21454973/article/details/89022146)里配置:
zuul:
routes:
test:
path: /test/**
serviceId: test-producer
启动网关,访问http://localhost:8010/test/test1:
刷新下页面:
变成2了
反复访问 http://localhost:8010/test/test1,结果交替返回服务8000和8001,因为默认的负载均衡器是采用轮询的方式。
可以看下服务中心:
点进去:
这里是在网关里通过映射URL的方式调用的,之前有篇文章是Feign方式调用的,也可以尝试下。
实际上就是在服务中心里找名字是test-producer的节点然后轮询。也可以有其他的调用方式,配置百度一下即可。
这样当一个节点挂掉以后还可以调用第二个节点。
告辞!
推荐阅读
-
Spring Cloud Ribbon实现客户端负载均衡的示例
-
详解Spring Cloud负载均衡重要组件Ribbon中重要类的用法
-
Spring Cloud第七篇 | 声明式服务调用Feign
-
windows第七层负载均衡_基于IIS的ARR负载均衡详解
-
跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh
-
linux负载均衡总结性说明 四层负载和七层负载有什么区别
-
为何一个@LoadBalanced注解就能让RestTemplate拥有负载均衡的能力?【享学Spring Cloud】
-
spring cloud 入门系列七:基于Git存储的分布式配置中心--Spring Cloud Config
-
spring-cloud-gateway负载普通web项目
-
撸一撸Spring Cloud Ribbon的原理-负载均衡策略