paso

Arriba hablamos sobre la anotación de Sentinel @SentinelResource y su manejo de la solución de excepción.

Si cada interfaz se procesa por separado, será un inconveniente, por lo que podemos integrar openfeign para manejar la estrategia actual de limitación y degradación de manera unificada.

Paso 1: activa el soporte de fingir para centinela

feign:
  sentinel:
    enabled: true

Paso 2: escriba un plan de resultados

import com.ossa.feign.api.producer.ProducerFeign;
import org.springframework.stereotype.Service;

/**
 * @author issavior
 */

@Service
public class ProducerFeignFallback implements ProducerFeign {
    @Override
    public String producerById(String id) {
        String msg = "fallback限流方法";
        return id + msg;
    }
}

Paso 3: Modifica la anotación @FeignClient

import com.ossa.feign.config.FeignClientConfig;
import com.ossa.feign.fallback.ProducerFeignFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * @author issavior
 */

@FeignClient(value = "ossa-service-producer", configuration = FeignClientConfig.class,fallback = ProducerFeignFallback.class)
public interface ProducerFeign 
{

    /**
     * 根据ID查询商品
     *
     * @param id 商品的主键ID
     * @return 相关商品的信息
     */

    @GetMapping(value = "/producer/{id}")
    String producerById(@PathVariable("id") String id);

}

pregunta

Descripción del problema:

Causado por: java.lang.IllegalStateException: Mapeo ambiguoimagen

analizar:

Usar la anotación @RequestMapping en la interfaz de fingir causará este problema.

El controlador, una solicitud de capa de control, asigna dos métodos y se repite en el controlador, por lo que se informa un error. En otras palabras, si hay dos @RequestMapping("/xxx") en un proyecto que son exactamente iguales, se informará una java.lang.IllegalStateException y el módulo donde se encuentra el controlador depende del módulo donde se encuentra el cliente. se encuentra para causar un conflicto.

solución:

eliminar @RequestMapping

imagen