springcloud--riboon快速搭建

16 篇文章 0 订阅

Ribbon是Spring Cloud核心组件之一,它提供的最重要的功能就是负载均衡,和硬件负载均衡F5不同,它的负载均衡是基于客户端的,Zuul网关和Feign可以通过Ribbon轻松的实现服务的负载均衡,同时避免了与业务无关的冗余代码。

搭建

  1. 用集群方式创建两台生产者eureka-client,提供方法供消费者调用,并向eureka-server注册
  2. 创建一台消费者,提供方法,调用生产者提供的方法,同样向eureka-server注册
  3. 向生产者多次发送请求,检验是否实现负载均衡

使用

首先创建一台springboot项目–做生产者

  • 引入web依赖,用来响应以及发请求
  • 引入eureka-client依赖,用做服务注册
  • 配置yml文件
  • 开启eureka客户端,@EnableEurekaClient
  • 手写一个方法以供消费者调用

pom.xml文件

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

yml文件

server:
  port: 8080
spring:
  application:
    name: provider
eureka:
  client:
    service-url:
      defaultZone: http://eureka的IP地址/eureka
  instance:
    hostname: localhost
    prefer-ip-address: true
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
 

controller方法

@RestController
public class ProviderController {
 
    @GetMapping("/hello")
    public String hello(){
        return "我是提供者aaaaa的接口";
    }
 
}

再创一台生产者做集群

  • 端口号不能重复,但应用名称要相同
  • 方法返回值做修改,用以检验负载均衡是否成功

创建一个springboot项目–用作消费者

  • 引入web依赖,用来响应以及发请求
  • 引入eureka-client依赖,用做服务注册
  • 引入ribbon依赖,用作负载均衡
  • 配置yml文件
  • 开启eureka客户端,@EnableEurekaClient
  • 向spring容器中,添加restTemplate实例,并加@LoadBalanced
  • 手写一个请求,用restTemplate来发送,返回结果

spring容器

 
    /**
     * 这个restTemplate已经变了
     * @LoadBalanced 他就会被ribbon来操作
     * @return
     */
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

controller

 
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/testRibbon")
    public String testRibbon(String serviceName){
        //正常情况下要拿到ip和prot以及路径才可以用
        String result = restTemplate.getForObject("http://" + serviceName + "/hello", String.class);
        return result;
    }

结果

用浏览器发送请求,访问消费者的testRibbon方法,可以返回生产者型号,在页面上轮询显示a生产者和b生产者

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值