balanceo de carga de la cinta Springcloud

proyecto distribuido a fin de evitar una carga concentrada servicio es demasiado alto lo que resulta en la degradación del rendimiento del servicio o incluso colgar el servicio, necesidad de tener un mecanismo para solicitar al cliente está relativamente distribuye uniformemente a cada servicio, este mecanismo puede ser llamado de carga equilibrado.
El equilibrio de carga sobre la aplicación del lado del servidor también puede ser implementado en el cliente, en Springcloud en, la cinta es un cliente del equilibrador de carga para lograr el equilibrio de carga se puede utilizar conjuntamente con el registro de servicios de Eureka, y puede ser de uso en Springcloud algoritmo de balanceo de carga a medida conveniente.

Cinta principio de equilibrio de carga

principio de la cinta para lograr el equilibrio de carga
La cifra puede ser descrito como:
ejemplo Eureka servidor está registrado en cada uno de los servicios de micro, la cinta equilibrador de carga también registrado en el Eureka Server. Al recibir la solicitud del cliente, en primer lugar encontrar la lista de Eureka servidor de servicios disponibles, se encuentran los servicios disponibles se envía al cliente la cinta, un cliente selecciona la cinta del servicio de llamadas remotas servicio de micro por la carga algoritmo de equilibrio, los resultados regresar.

La construcción del proyecto de la cinta Springcloud

Una vez más, la cinta es un componente de la carga del cliente para lograr el equilibrio, por lo que el proyecto de construcción se lleva a cabo en el proyecto de servicio al consumidor.

  1. pom.xml
    en springcloud en, la cinta normalmente se utiliza con el Eureka, dependencia maven requiere lo siguiente:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
  1. application.yml
eureka:
  client:
    register-with-eureka: false    # 自己不作为Eureka的注册中心
    service-url:
      # 指定了Eureka集群的地址
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002 
  1. maestro de arranque añadir los apuntes de clase apropiadas, porque la cinta se registran en Eureka servidor en, por lo que puede añadir un comentario aquí @EnableRurekaClient.
@SpringBootApplication
@EnableEurekaClient
public class App_consumer_dept_80 {
    public static void main(String[] args) {
        SpringApplication.run(App_consumer_dept_80.class, args);
    }
}
  1. Se utiliza en los servicios de RestTemplate proyecto a llamadas remotas micro, necesita habilitar mecanismo de equilibrio de carga en la clase de configuración RestTemplate.
@Configuration
public class BeanConfig {

    @Bean
    @LoadBalanced  // 启用负载均衡
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

}
  1. La cinta es un componente de balanceo de carga, y cuando se utiliza en combinación Eureka, balanceo de carga se puede realizar sobre la base de un nombre de servicio de llamada en los servicios de Micro. Cuando es llamado por RestTemplate, originalmente se necesita para escribir en servicios de micro acceso de URL, después de la cinta de uso, puede escribir directamente el nombre del servicio.
@RestController
public class DeptController {

	// 使用RestTemplate进行调用时需要指定服务的url
//    private static final String URL_PREFIX = "http://localhost:8001";

	// 使用Ribbon + Eureka 之后,可以直接通过服务名来进行服务的调用
    private static final String URL_PREFIX = "http://provider-dept";

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping(value = "/consumer/dept/{id}")
    public Dept get(@PathVariable("id") Long id) {
    		// 通过RestTemplate进行服务调用
	        return restTemplate.getForObject(URL_PREFIX + "/api/dept/" + id, Dept.class);
    }

  	...
}

Publicado ocho artículos originales · ganado elogios 3 · Vistas 842

Supongo que te gusta

Origin blog.csdn.net/weixin_40203134/article/details/87984083
Recomendado
Clasificación