Почему промежуточные «фильтры» архитектуры «трубы и фильтры» SI называются конечными точками сообщений? - PullRequest
0 голосов
/ 08 ноября 2018

Фрагмент из doc

Конечная точка сообщения представляет «фильтр» труб и фильтров. архитектура. Как упоминалось ранее, основная роль конечной точки заключается в подключить код приложения к структуре обмена сообщениями и сделать это в неинвазивный способ. Другими словами, код приложения должен в идеале не иметь представления об объектах сообщения или сообщения каналы.

Все трансформаторы, фильтры, сервисные активаторы Message Endpoints. Я не понимаю, почему они называются так, поскольку приложение может отправлять сообщения в каналы ввода, и эти «конечные точки» используются в середине цепочки. Другими словами, приложение знает о канале, а не о конечных точках. Пример:

@SpringBootApplication
@IntegrationComponentScan
public class SendToInputChannel {

    @Bean
        public IntegrationFlow flow() {
            return IntegrationFlows.from("input")
                .handle(System.out::println).get();
        }

    public static void main(String[] args) throws IOException {
        ConfigurableApplicationContext ctx = SpringApplication.run(SendToInputChannel.class, args);

        MessageChannel inputChannel = ctx.getBean("input", MessageChannel.class);
        for (int i = 0; i < 10; i++) {
            inputChannel.send(MessageBuilder.withPayload(i)
                .build());
        }

        ctx.close();

    }

}

1 Ответ

0 голосов
/ 08 ноября 2018

Ekaterina, все началось с Enterprise Integration Patterns (EIP) книги и Spring Integration (SI) - это, по сути, эталонная реализация EIP. Мы пытались держаться довольно близко к «этому сценарию». Итак, как видно из этот отрывок - Конечная точка сообщения используется для подключения приложения к каналам обмена сообщениями . Другими словами, SI сама по себе является структурой обмена сообщениями, поскольку она обеспечивает внутренние каналы, к которым могут быть подключены различные фильтры / конечные точки . Имейте в виду, что MessageChannel является интерфейсом и может представлять не только внутренние каналы, реализованные в SI. Например, можно реализовать интерфейс MessageChannel, который предоставляет некоторый прокси-сервер для очереди JMS или чего-либо еще, тогда как Фильтры / Конечные точки останутся такими же / без изменений.

Я могу продолжать, но я надеюсь, что этого пока достаточно, но бесплатно, чтобы продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...