О Spring Cloud

Сначала приложите резюме предыдущего интервью:
Вставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюда
Вставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюда
Вставьте описание изображения сюдаВставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюдаВставьте описание изображения сюда
это резюме, сделанное, когда я был новичком в Spring Cloud. Поскольку я был новичком, многие пункты знаний были написаны очень однобоко, и даже резюме в одном предложении, что также привело к вышесказанному Компания столкнулась с множеством проблем при применении его к проекту. Теперь, когда у меня есть время, я должен легко прочитать его и в моем собеседовании, и в будущей работе, поэтому я сделал более подробное резюме.
Прежде всего: какие компоненты Spring Cloud мы будем использовать при разработке на уровне предприятия?
Это настолько практично, что полностью зависит от работы. Каждый компонент Sprig Cloud может помочь нам решить многие проблемы на работе и упростить разработку (черт!)

Днем я также потратил некоторое время на создание простого. Полка: в
Вставьте описание изображения сюда
основном этих компонентов достаточно!
Приведенное выше резюме конкретных компонентов в основном написано, я обращаюсь к официальному вводному руководству для этой демонстрации!
Теперь перейдем к основной теме:
Вопрос 1. Как сервису A необходимо получить доступ к сервису B и получить данные, возвращаемые сервисом B?
Ответ: Используйте Feign (декларативный клиент)

@FeignClient(value = ApplicationConstant.服务名, fallback = CouponServiceHystrux.class)
public interface CouponServiceClient {
    
    
    @GetMapping(value = "/coupon/getAllErpCoupon")
    ResultResp<Page<ErpCouponListDTO>> getAllCoupon(@RequestParam(value = "pageable") Pageable pageable);

   
    @GetMapping(value = "/coupon/{id}")
    ResultResp<CouponDTO> getOneCoupon(@RequestParam(value = "id") Long id);
}

Вот введение в основной принцип Feign (новички не распыляют!) При
запуске программа просканирует пакет, просканирует все аннотированные классы @FeignClient во всех пакетах и ​​внедрит эти классы в контейнер Spring IOC. Когда вызывается определенный интерфейс Feign, RequestTemplate генерируется через динамический прокси-сервер JDK .
RequestTemplate содержит всю информацию о запросе, такую ​​как параметры запроса, URL-адрес запроса и т. Д.
RequestTemplate генерирует запрос, а затем передает его клиенту для обработки.Этим клиентом по умолчанию является HTTPUrlConnection JDK, либо это может быть OKhttp, HTTPClient из Apache и т. Д.
Наконец, клиент инкапсулируется в LoadBaLanceClient, и вызов инициируется вместе с балансировкой нагрузки на ленте.

RequestTemplate - это инструмент удаленного вызова HTTP, предоставляемый Spring BOOT
Method:
getForObject (адрес, параметр, тип инкапсулированного объекта)
postForObject (адрес, параметр, тип инкапсулированного объекта)
похож на HttpClient, Jsoup
интегрирует RequextTemplate в ленту для обеспечения повторных попыток и балансировки нагрузки функция.

Существует также понижение версии Hystrix и предохранитель. Feign объединяет ленту и Hystrix. В процессе разработки мы обычно пишем:

    @Override
    public ResultResp<Page<ErpCouponListDTO>> getAllCoupon(Pageable pageable) {
    
    
        return ResultResp.code(ResultCode.INTERNAL_SERVER_ERROR).build();
    }
``可以返回给前端一些错误信息,也可以返回null!
`

рекомендация

отblog.csdn.net/DoChengAoHan/article/details/103183314
рекомендация