Как веб-службы SOAP обмениваются данными только через Eureka? не прямо друг к другу

Я работаю над POC, чтобы показать своего менеджера. Я создал 4 микросервиса, используя springboot (1 - это MVC + 2 SOAP + 1 простая весенняя загрузка для Eureka). Сначала я пошел в учебник, учебник Этот разработал эти службы полностью на REST архитектура. Я прочитал все статьи в учебнике, который очень помогает мне понять.

Но мое требование - создать приложение того же типа, но с использованием веб-служб SOAP. Как бы то ни было, с помощью эта статья я создал: 2 веб-службы SOAP + 1 MVC + 1 простое приложение для весенней загрузки (Eureka). Все 3 сервиса зарегистрированы в сервисе Eureka, я также вижу в Eureka Console:

Как веб-службы SOAP обмениваются данными только через Eureka? не прямо друг к другу

все запущены и работают. Они прекрасно общаются с мыльным клиентом. Я запустил приложение, оно работает отлично.

Но когда я даю демо менеджеру, он не был полностью удовлетворен. Он мне это сказал

business logic wise its fine but your services are communicating directly each other, there is no role of Eureka in your application. In your application Eureka is showing which service is up and running, nothing else. This is not complete microservice pattern which you shown to me.

Затем я гулю об этом и исследую архитектуру микросервисов. Я понял это. Но моя проблема в том, что мои услуги разработаны с использованием SOAP, и я не нашел ни одной соответствующей статьи или какого-либо учебного пособия, которое могло бы мне помочь в этом. Все статьи предназначены для REST-дизайна.

Я даже изучил [эту статью 7, но это мне не очень помогло.

Так что некоторые могут предоставить любую помощь / ссылку / код, который может помочь мне в соответствии с моими требованиями. Мне нужно приложение, в котором сервисы SOAP общаются только через Eureka.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
566
1

Ответы 1

Эврика - это реестр ваших услуг. Они не общаются через это. Что вы можете сделать, так это получить зарегистрированные хосты от Eureka-service-resgistry. Вы можете сделать это с помощью ленточный клиент. Вы получаете хост и порт и можете использовать их в своем URL-адресе SOAP. Если существует несколько экземпляров одной и той же службы, вы также получите балансировку нагрузки на стороне клиента.

public class MyClass {
    @Autowired
    private LoadBalancerClient loadBalancer;

    public void doStuff() {
        ServiceInstance instance = loadBalancer.choose("stores");
        URI storesUri = URI.create(String.format("http://%s:%s", instance.getHost(), instance.getPort()));
        // ... do something with the URI
    }
}

Другие вопросы по теме