皇冠新体育APP

IT技术之家

SpringCloudAlibaba——Nacos负载均衡的使用_Liu_Shihao

颁布准确时间:2023-08-25 16:12:03 服务器 50次 标签:
目录一、介绍二、依赖三、负载均衡3.1 使用@LoadBalanced注解3.2 使用Feign四、测试一、介绍Nacos不仅可以用作注册中心和配置中心,还可以做负载均衡。二、依赖<!-- Nacos注册中心--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-clo...

目录

一、介绍二、依赖三、负载均衡3.1 使用@LoadBalanced注解负载均衡3.2 使用Feign负载均衡 四、测试

一、介绍

Nacos不仅仅能够 应用于注册申请机构点和选配机构点,还能够 做负载电阻平衡。

二、依赖

<!-- Nacos注册中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

Nacos注册中心的依赖中已经集成了ribbon的依赖了:

所以不需要在添加ribbon的依赖。

三、负载均衡

两种方式开启负载均衡

    一个是使用@LoadBalanced注解通过RestTemplate来进行服务调用。另一个是直接使用Feign来进行服务调用。

3.1 使用@LoadBalanced注解负载均衡

注入RestTemplate,并添加@LoadBalanced注解开启负载均衡

@Bean
@LoadBalanced // ribbon注解负载均衡
 public RestTemplate getRestTemplate(){
     return new RestTemplate();
 }

Controller:
注入RestTemplate

3.2 使用Feign负载均衡

Feign依赖症:
<!--feign-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    <version>${feign.version}</version>
</dependency>

其实Feign内部也集成了ribbon的依赖,还有Hystrix的依赖,所以Feign既有负载均衡的作用还有服务熔断的功能。

新建Feign接口:

使用@FeignClient注解,name是Account服务注册到Nacos的服务名。

@FeignClient(name = "springcloud-alibaba-account")
public interface AccountApi {
    /**
     * 查询所有账户数据
     * @return
     */
    @GetMapping("/account/findAll")
    String findAll();
}

Controller:
注入Feign接口

四、测试


现启动了两个服务:Order和Account,其中Account启动了两个实例:

开启负载均衡后,Order服务直接使用服务名就可轮询的访问Account服务。

使用RestTemplate调用:

使用Feign调用: