springcloud 实现反向代理和负载均衡

本文介绍如何使用 Spring Cloud 搭建注册中心、路由服务 Zuul 和两个服务端实例。通过配置实现服务发现,并利用 Zuul 实现基于路径的负载均衡,最终达到轮询式访问的效果。

1. 搭建注册中心,路由服务zuul,两个服务端

        参考我的上一篇博客 springcloud项目搭建

        注意两个服务端服务名称要相同,端口不能相同配置如下

        service1的配置文件

#服务名称
spring.application.name=compute-service1 //注意该配置的值
#端口号
server.port=2222
eureka.instance.hostname=127.0.0.1
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.hostname}:${server.port}
#是在注册中心url中不显示ip地址前缀
eureka.instance.prefer-ip-address=false
#注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
spring.cloud.config.discovery.enabled=true
#注册中心的服务id
spring.cloud.config.discovery.serviceId=compute-server

    service2的配置文件  

#服务名称
spring.application.name=compute-service1//该配置的值跟上面service1的值相同
#端口号
server.port=2223//端口号跟上面端口不同
eureka.instance.hostname=127.0.0.1
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.hostname}:${server.port}
#是在注册中心url中不显示ip地址前缀
eureka.instance.prefer-ip-address=false
#注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
spring.cloud.config.discovery.enabled=true
#注册中心的服务id
spring.cloud.config.discovery.serviceId=compute-server

路由服务器zuul配置文件

eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
server.port=3333
spring.application.name=service-zuul
#表示只要访问以/api-a/开头的多层目录都可以路由到 id为compute-service1的服务上
zuul.routes.compute-service1=/api-a/**

2. 运行项目查看结果

compute-service1相同,端口不同,如下图


启动路由服务器,访问会出现轮询式的访问服务端


springcloud的负载均衡策略默认是轮询规则

项目源码地址 springcloud负载均衡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值