Ribbon负载均衡

Ribbon实现负载均衡

1、在pom配置文件中一如ribbon包

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-ribbon</artifactId>
    <version>1.3.5.RELEASE</version>
</dependency>

 

2、在配置文件中配置eureka的地址

 

eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/

 

3、在微服务启动类中添加”@LoadBalanced”注解

 

package com.bfxy.springcloud;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;

import org.springframework.context.annotation.Bean;

import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;

import org.springframework.web.client.RestTemplate;

 

@EnableDiscoveryClient         //标识具体的一个服务,需要向注册中心注册

@SpringBootApplication         //SpringBoot 核心配置

public class Application {

 

          @Bean

          @LoadBalanced //用于实现内部的服务负载均衡机制: service-id  service-name

          public RestTemplate restTemplate(){

                    HttpComponentsClientHttpRequestFactory httpComponentsClientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();

                    httpComponentsClientHttpRequestFactory.setConnectTimeout(10000);

                    httpComponentsClientHttpRequestFactory.setConnectionRequestTimeout(10000);

                    httpComponentsClientHttpRequestFactory.setReadTimeout(20000);

                    return new RestTemplate(httpComponentsClientHttpRequestFactory);

          }

         

         

          public static void main(String[] args) {

                   

                    SpringApplication.run(Application.class, args);

          }

         

}

 

Ribbon自定义负载均衡

1、在pom中新增ribbon包

 

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-ribbon</artifactId>

    <version>1.3.5.RELEASE</version>

</dependency>

 

2、新建规则类”RuleConfiguration.java”和接口“ExcludeComponentScan.java

 

package com.bfxy;

public @interface ExcludeComponentScan {
}

 

package com.bfxy;



import com.netflix.loadbalancer.IRule;

import com.netflix.loadbalancer.RandomRule;

import org.springframework.context.annotation.Configuration;



@Configuration

@ExcludeComponentScan

public class RuleConfiguration {

    

    public IRule ribbonRule(){

        return new RandomRule();

    }

}

 

3、在启动类中使用@RiibonClient,添加使用新规则的微服务

 

package com.bfxy;



import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.netflix.ribbon.RibbonClient;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.FilterType;



@SpringBootApplication

@EnableDiscoveryClient

@EnableCircuitBreaker

@RibbonClient(name="service-a",configuration=RuleConfiguration.class)

@ComponentScan(excludeFilters = {@ComponentScan.Filter(type= FilterType.ANNOTATION,value=ExcludeComponentScan.class)})

public class FoundationZookeeperApplication {



    public static void main(String[] args) {

        SpringApplication.run(FoundationZookeeperApplication.class, args);

    }



}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记录成长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值