Какие технологии и паттерны используются в интеграционных ландшафтах?

«Какие технологии и паттерны используются в интеграционных ландшафтах?» — вопрос из категории Архитектура, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Интеграционный ландшафт строится на комбинации паттернов и технологий для связи разнородных систем.

Ключевые паттерны и инструменты:

  1. Синхронная интеграция (Request/Reply)

    • Технология: REST API (чаще всего на Spring Boot).
    • Зачем: Для прямых, немедленных вызовов, когда нужен мгновенный ответ.
    • Пример: Сервис A вызывает метод GET /api/orders/{id} у Сервиса B и ждет ответа.
  2. Асинхронная, событийно-ориентированная интеграция (Publish/Subscribe)

    • Технология: Apache Kafka или RabbitMQ.
    • Зачем: Для развязки систем, повышения отказоустойчивости и обработки потоков событий.
    • Пример конфигурации Kafka Producer в Spring:
      @Configuration
      public class KafkaProducerConfig {
          @Bean
          public ProducerFactory<String, OrderEvent> producerFactory() {
              Map<String, Object> config = new HashMap<>();
              config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka:9092");
              config.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
              config.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
              return new DefaultKafkaProducerFactory<>(config);
          }
          @Bean
          public KafkaTemplate<String, OrderEvent> kafkaTemplate() {
              return new KafkaTemplate<>(producerFactory());
          }
      }
  3. Надежная асинхронная доставка сообщений (Point-to-Point)

    • Технология: JMS с брокерами (Apache ActiveMQ, IBM MQ).
    • Зачем: Для гарантированной доставки сообщений между двумя системами, часто в корпоративных средах.
  4. Интеграция с legacy-системами

    • Технология: SOAP/WSDL (реализация через Apache CXF или Spring WS).
    • Зачем: Когда старая система предоставляет только SOAP-сервисы.
  5. Оркестрация интеграционных потоков

    • Технология: Spring Integration или Apache Camel.
    • Зачем: Для визуализации и управления сложными цепочками преобразований и маршрутизации сообщений между множеством систем (EIP — Enterprise Integration Patterns).