客户端负载均衡 Spring Cloud Ribbon

客户端负载均衡 Spring Cloud Ribbon

Spring Cloud Ribbon是一个基于客户端负载均衡的工具,是基于Spring Cloud NetFlix 实现的,在远程调用多节点服务,通过客户端进行转换。
通过Spring Cloud R巾bon的封装, 我们在微服务架构中使用客户端负载均衡调用非常 简单, 只需要如下两步:
• 服务提供者只需要启动多个服务实例并注册到一个注册中心或是多个相关联的服务 注册中心。
• 服务消费者直接通过调用被@LoadBalanced注解修饰过的 RestTemplate来实现面 向服务的接口调用。 这样,我们就可以将服务提供者的高可用以及服务消费者的负载均衡调用一起实现了。

以下是简单的演示示例;

 首先启动两个远程服务,在启动的时候都注册到eureka注册中心,端口分别是9011和9001.
 另外在启动一个客户端服务。让他来远程调用服务端服务。
 然后观察服务端返回的信息,包括端口和ip地址。

代码

远程服务示例;

@RestController
public class FlowController {
    @Value("${server.port}")
    public String port;
    @Value("${spring.cloud.client.ip-address}")
    private String ip;

    @RequestMapping(value="/getStr")
    public String hello(){

        return "hello word This is a Ribbon Test"+"访问的地址:"+"http//"+ip+":"+port;
    }
}

配置文件

#服务注册中心
server.port=9001
eureka.client.serviceUrl.defaultZone=http://192.168.11.128:9000/eureka/
spring.application.name=login-service
     

分别以9011和9001端口启动观察服务注册中心
在这里插入图片描述
客户端服务配置如下

服务注册中心
server.port=9002
server.servlet.context-path=/a
eureka.client.serviceUrl.defaultZone=http://192.168.11.128:9000/eureka/
spring.application.name=dzsw-service
#spring.security.user.password=123456
#数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.password=123456
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/sys?serverTimezone=UTC&characterEncoding=utf-8
#每次执行是更新数据表
spring.jpa.hibernate.ddl-auto=update
#显示sql
spring.jpa.show-sql=true
spring.jackson.date-format=java.text.SimpleDateFormat

远程调用代码:

@RestController
public class LoginController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping(value = "/getStr")
   public String getStr(){
       String testStr = restTemplate.getForObject("http://login-service/getStr",String.class);
       return testStr;
   }
}

启动起来之后观察服务返回的端口信息,发现在9001和9011之间来回交换显示端口。说明服务信息是在两个节点之间来回调用返回的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值