2012-06-18 19 views
7

Na ESB jak Apache Camel, jaki mechanizm jest rzeczywiście „marszu” (ciągnięcie/pchanie) wiadomości wzdłuż trasy od punktu końcowego do punktu końcowego?Apache Camel: Co marszczy wiadomości wzdłuż?

Czy Camel RouteBuilder tylko komponować wykres Endpoints i Routes i wiedzieć, które miejsce przeznaczenia/następny Endpoint przekazać wiadomość po odwiedza go pewien Endpoint lub wykonaj Endpoints sami wiedzą, co jest kolejnym miejscem na wiadomości ma ona obrobiony.

Tak czy inaczej, jestem zdezorientowany:

  • Jeśli jest to RouteBuilder że zna „przepływ” wiadomości przez system, to RouteBuilder musiałby poznać logikę biznesową, kiedy Endpoint A powinien przekazać wiadomość obok Endpoint B vs Endpoint C, ale we wszystkich przykładach Camel widzę to logika biznesowa nie istnieje; i
  • Wydaje się, że wprowadzenie tego rodzaju „Flow” logiki biznesowej w Endpoints samych par je razem i pokonuje kilka podstawowych zasad SOA/ESB/EIP itp

Odpowiedz

8

pod maską I Wierzymy, że wielbłąd buduje czysty wykres, w którym każdy węzeł jest punktem końcowym/procesorem wielbłądowym, a każda krawędź jest trasą między dwoma punktami końcowymi (źródłem i miejscem docelowym). Ten wykres jest dokładnie taki, jaki buduje RouteBuilder podczas wywoływania interfejsu API. Gdy idziesz do start() trasy Camel, wykres jest najprawdopodobniej zatwierdzony i przetłumaczony na szereg Runnable s, które muszą być wykonane, a prawdopodobnie używa jakiegoś zwyczaju Executor lub zarządzania wątku do obsługi tych Runnable s.

W ten sposób wykonanie Runnable s (procesory przetwarzające komunikaty po ich otrzymaniu) są obsługiwane przez ten niestandardowy Executor. Jest to mechanizm, który „maszeruje wzdłuż wiadomości”, chociaż kolejność, w której zadania są w kolejce jest napędzany przez nadrzędnej struktury wykresu złożonego przez RouteBuilder.

7

Proponuję czytaj pierwszy What exactly is Apache Camel? ten QA ... i łączy to dotyczy, na jakimś tle więcej o Apache Camel.

Logika biznesowa może być dowolny rodzaj logiki, takich jak fasola Java (POJO). A Camel pozwala na dostęp do logiki biznesowej w nieładny sposób. Patrz na przykład te linki