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 ambiguo
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
