springcloud负载均衡ribbon

springcloud的负载均衡数据客户端负载均衡,他需要自己维护自己要访问的服务端清单,这些服务端清单来自于注册中心(例如eureka-server),同服务端的负载均衡类似,客户端的负载均衡也需要通过心跳机制去维护自己的服务清单的健康性。只是这个步骤需要与服务注册中心配合完成。通过springcloud ribbon的封装,我们使用客户端的负载均衡非常简单,只需要两步。

1、服务提供者启动多个服务实例并注册到一个注册中心或是相互关联的服务注册中心

2、服务消费者创建的时候使用@LoadBalanced进行修饰。

代码1、

参考上一篇文章 springcloud服务治理Eureka,但是eureka-client中DemoController需要进行修改。

修改内容后,代码如下。

package com.springcloud.eurekaclient.controller;

import com.springcloud.eurekaclient.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.*;

import java.net.URI;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Author:sgchen
 * @Date:2019/8/2 16:38
 * @Description:
 */
@RestController
public class DemoController {
    @Autowired
    private DiscoveryClient discoveryClient;
    @Value("${spring.application.name}")
    private String applicationName;
    @Value("${server.port}")
    private String port;

    @RequestMapping("hello")
    public String hello(){
        List<String> services = discoveryClient.getServices();
        String message = "应用名:"+applicationName+",端口号:"+port;
        return message;
    }
   
}

将eureka-client打包,使用命令 mvn package 

启动eureka-server项目

运行服务项目时指定端口号。java -jar eureka-client-0.0.1-SNAPSHOT.jar --server.port=1114
项目正常启动后再次使用其他端口启动该项目。java -jar eureka-client-0.0.1-SNAPSHOT.jar --server.port=1115

访问eureka-server服务端,可看到如下图:

表示此服务有两个端点正常启动,端口号分别是1114和1115。

然后启动消费者,可以使用idea直接启动。端口使用1113。访问urlhttp://localhost:1113/ribbon-consummer

分别返回如下接口。

应用名:hello-service,端口号:1115

应用名:hello-service,端口号:1114

则表示消费者分别调用了两个服务提供者。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值