шаг

Выше мы говорили об аннотации Sentinel @SentinelResource и ее обработке решения об исключении.

Если каждый интерфейс обрабатывается отдельно, это будет неудобно, поэтому мы можем интегрировать openfeign для обработки текущей стратегии ограничения и понижения унифицированным образом.

Шаг 1. Включите симуляцию для Sentinel.

feign:
  sentinel:
    enabled: true

Шаг 2: Напишите итоговый план

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;
    }
}

Шаг 3. Измените аннотацию @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);

}

вопрос

Описание проблемы:

Вызвано: java.lang.IllegalStateException: неоднозначное сопоставлениекартина

анализировать:

Использование аннотации @RequestMapping в интерфейсе feign вызовет эту проблему.

Контроллер, запрос уровня управления, отображает два метода и повторяется в Контроллере, поэтому сообщается об ошибке. Другими словами, если в проекте есть два абсолютно одинаковых @RequestMapping("/xxx"), будет сообщено об исключении java.lang.IllegalStateException, а модуль, в котором расположен контроллер, зависит от модуля, в котором находится клиент. расположено, чтобы вызвать конфликт.

решение:

удалить @RequestMapping

картина