Odpowiedzi:
Jeśli masz od 5 do 10 minut, ogólnie polecam osobom przeczytanie tej integracji z Apache Camel autorstwa Jonathana Ansteya. Jest to dobrze napisany utwór, który zawiera krótkie wprowadzenie i przegląd niektórych koncepcji Camela oraz implementuje przypadek użycia z przykładowymi kodami. Jonathan pisze w nim:
Apache Camel to platforma Java typu open source, która koncentruje się na ułatwieniu integracji i dostępności dla programistów. Robi to, zapewniając:
- konkretne wdrożenia wszystkich powszechnie stosowanych Wzorów Integracji Przedsiębiorstw (EIP)
- łączność z wieloma różnymi transportami i interfejsami API
- łatwe w użyciu języki specyficzne dla domeny (DSL) do łączenia EIP i transportów razem
Dostępny jest również bezpłatny rozdział Camel in Action, który wprowadza Camela w pierwszym rozdziale. Jonathan jest ze mną współautorem tej książki.
Moje podejście do opisania tego w bardziej przystępny sposób ...
Aby zrozumieć, czym jest Apache Camel, musisz zrozumieć, jakie są wzorce integracji korporacyjnej.
Zacznijmy od tego, co prawdopodobnie już wiemy: wzór Singleton, wzór Factory itp .; Są jedynie sposobami na zorganizowanie twojego rozwiązania problemu, ale same nie są rozwiązaniami. Wzory te zostały przeanalizowane i wyodrębnione dla nas wszystkich przez Gang of Four, kiedy opublikowali swoją książkę: Design Patterns . Zaoszczędzili niektórym z nas ogromnego wysiłku, zastanawiając się, jak najlepiej ustrukturyzować nasz kod.
Podobnie jak Gang of Four, Gregor Hohpe i Bobby Woolf są autorami książki Enterprise Integration Patterns (EIP), w której proponują i dokumentują zestaw nowych wzorów i planów, w jaki sposób najlepiej zaprojektować systemy oparte na dużych komponentach, w których komponenty mogą być działający w tym samym procesie lub na innym komputerze.
Zasadniczo proponują, abyśmy ukształtowali nasz system tak, aby był zorientowany na komunikaty - w których komponenty komunikują się ze sobą, używając komunikatów jako sygnałów wejściowych i wyjściowych i absolutnie nic więcej. Pokazują nam pełny zestaw wzorów, które możemy wybierać i wdrażać w naszych różnych komponentach, które razem tworzą cały system.
Czym więc jest Apache Camel?
Apache Camel oferuje interfejsy dla EIP, obiektów podstawowych, często potrzebnych implementacji, narzędzi do debugowania, systemu konfiguracji i wielu innych pomocników, co pozwoli ci zaoszczędzić mnóstwo czasu, jeśli chcesz wdrożyć swoje rozwiązanie zgodne z EIP.
Weź MVC. MVC jest dość prosty w teorii i moglibyśmy go wdrożyć bez żadnej pomocy frameworka. Ale dobre frameworki MVC zapewniają nam strukturę gotową do użycia i poszły o krok dalej i przemyślały wszystkie inne „boczne” rzeczy, których potrzebujesz, gdy tworzysz duży projekt MVC i dlatego używamy ich przez większość czasu.
Właśnie tym jest Apache Camel dla EIP. Jest to kompletna platforma gotowa do produkcji dla osób, które chcą wdrożyć swoje rozwiązanie zgodnie z EIP.
Utworzenie opisu projektu nie powinno być skomplikowane.
Mówię:
Apache Camel to klej do technologii przesyłania wiadomości z routingiem. Łączy punkty początkowe i końcowe przesyłania wiadomości, umożliwiając przekazywanie wiadomości z różnych źródeł do różnych miejsc docelowych. Na przykład: JMS -> JSON, HTTP -> JMS lub lejekowanie FTP -> JMS, HTTP -> JMS, JSON -> JMS
Wikipedia mówi:
Apache Camel to oparty na regułach silnik routingu i mediacji, który zapewnia opartą na obiektach Java implementację wzorców integracji korporacyjnej za pomocą interfejsu API (lub deklaratywnego języka specyficznego dla domeny Java) w celu skonfigurowania reguł routingu i mediacji. Język specyficzny dla domeny oznacza, że Apache Camel może obsługiwać bezpieczne w typie inteligentne uzupełnianie reguł routingu w twoim IDE przy użyciu zwykłego kodu Java bez ogromnej ilości plików konfiguracyjnych XML; chociaż konfiguracja XML w Springu jest również obsługiwana.
Widzieć? To nie było trudne, prawda?
W skrócie:
Kiedy istnieje potrzeba połączenia / zintegrowania systemów, prawdopodobnie będziesz musiał połączyć się z jakimś źródłem danych, a następnie przetworzyć te dane, aby spełnić wymagania biznesowe.
Aby to zrobić:
1) Możesz opracować niestandardowy program, który by to zrobił (może być czasochłonny i trudny do zrozumienia dla innych programistów)
2) Alternatywnie możesz użyć Apache Camel, aby zrobić to w standardowy sposób (ma większość złączy już dla Ciebie opracowanych, wystarczy go skonfigurować i podłączyć swoją logikę - zwaną Proces):
Wielbłąd pomoże ci:
Używając Apache Camel ułatwisz zrozumienie / utrzymanie / rozszerzenie systemu na innego programistę.
Apache Camel został opracowany z wykorzystaniem Enterprise Integration Patterns. Wzory pomagają w dobrej integracji systemów :-)
Wielbłąd wysyła wiadomości od A do B:
Po co całe ramy dla tego? Co jeśli masz:
ftp
, http
, jms
etc.)Więc teraz potrzebujesz:
Wielbłąd daje Ci powyższe (i więcej) po wyjęciu z pudełka:
z fajnym językiem DSL, dzięki któremu możesz zdefiniować, co i jak:
new DefaultCamelContext().addRoutes(new RouteBuilder() {
public void configure() {
from("jms:incomingMessages")
.choice() // start router rules
.when(header("CamelFileName")
.endsWith(".xml"))
.to("jms:xmlMessages")
.when(header("CamelFileName")
.endsWith(".csv"))
.to("ftp:csvMessages");
}
Zobacz także to i to i Camel in Action (jak powiedzieli inni, świetna książka!)
Schemat jest lepszy niż tysiące opisów. Ten schemat ilustruje architekturę Wielbłąda.
OPARTE NA ANALOGII
Wyznaczanie tras na wielbłądach można łatwo zrozumieć, stawiając się w sytuacji właściciela linii lotniczej (np .: American Airlines, Jet Airways).
Celem „twojej linii lotniczej” jest „przewóz” „pasażerów” z jednego „miasta” do drugiego na świecie. Do przewożenia pasażerów używasz samolotów różnych „firm lotniczych”, takich jak Boeing, Airbus, HAL.
Pasażerowie Twojej linii lotniczej wsiadają do pasażerów korzystających z „lotnisk” z miasta i wysiadają ich z lotniska do miasta. Pasażer może „podróżować” do wielu miast, ale wszędzie, gdzie musi przejść przez lotnisko, aby podróżować między samolotem linii lotniczej a miastem.
Pamiętaj, że pasażer „odlatujący” z miasta zasadniczo „przyjeżdża” do samolotu linii lotniczych. A pasażer „przybywający” do miasta zasadniczo odchodzi z samolotu. Ponieważ jesteśmy w gestii właściciela linii lotniczych, pojęcia „pasażer przylatujący” i „pasażer odlatujący” są odwrócone od naszych konwencjonalnych pojęć opartych na perspektywie miast.
Z tej samej infrastruktury „lotniska” każdego miasta korzystają pasażerowie „odlatujący” i pasażerowie „przylatujący”. Lotnisko zapewnia „odlatującą infrastrukturę” dla odlatujących pasażerów, która różni się od „infrastruktury przylotowej” przewidzianej dla pasażerów przylatujących.
Pasażerowie mogą kontynuować swój dzień ze względu na różne „udogodnienia” zapewnione w samolocie przez linie lotnicze podczas podróży.
Ponadto twoja linia lotnicza zapewnia również zaplecze wypoczynkowe dla specjalnych zabiegów, takich jak „rozumienie lokalnego języka” lub przygotowywanie cię do „podróży”.
Pozwala zamienić kilka słów / fraz używanych powyżej na:
Twoja linia lotnicza: Apache Camel
firmy lotnicze: Mechanizmy transportowe
samolot linii lotniczych: podstawowy mechanizm transportowy Apache Camel
carry: route
pasażerowie: wiadomość;
miasto: system;
lotnisko: Camel Component;
rozumienie języków lokalnych: konwersje typów;
odejście: produkcja, produkcja
przybywające: konsumujące, konsumowane
podróż: rozłożona
udogodnienia: pod warunkiem
Po zamianie słów oto, co otrzymujesz:
Celem „Apache Camel” jest kierowanie „wiadomości” z jednego „systemu” do drugiego na świecie. Wielbłąd Apache używa różnych mechanizmów transportu do kierowania wiadomości.
Apache Camel odbiera wiadomości za pomocą „komponentu opartego na wielbłądach” w systemie „z” i upuszcza je za pomocą „komponentu opartego na wielbłądach” w systemie „do”. Wiadomość może kierować do wielu systemów, ale wszędzie muszą przejść przez „Komponenty wielbłąda”, aby podróżować między „mechanizmem bazowym Apache Camel” a systemem.
Zauważ, że komunikat „wyprodukowany” z systemu jest zasadniczo „zużyty” w podstawowy mechanizm transportowy Apache Camel ”. Komunikat zużyty przez system jest zasadniczo generowany przez „mechanizm transportowy Apache Camel”.
Ponieważ próbujemy zrozumieć Camela, musimy myśleć z perspektywy Camela tutaj. Znaczenie terminów „komunikat konsumencki” i „komunikat producenta” jest zatem odwrócone od naszych konwencjonalnych pojęć opartych na perspektywie systemu.
Ta sama infrastruktura kodowania komponentu „Camel Component” jest używana przez „komunikat producenta” i „komunikat konsumenta”. „Komponent oparty na wielbłądach” zapewnia „punkt końcowy producenta” dla „komunikatu producenta” i „punkt końcowy konsumenta” dla „komunikatu konsumenta”.
Wiadomości mogą być przetwarzane przez Camel podczas ich trasowania.
Oprócz tego routingu Camel zapewnia specjalne funkcje, takie jak „konwersja typów” i wiele innych ...
Jedną z rzeczy, które musisz zrozumieć, zanim spróbujesz zrozumieć Apache Camel, są Wzorce Integracji z Przedsiębiorstwem. Nie wszyscy w terenie są ich świadomi. Podczas gdy na pewno możesz przeczytać książkę Enterprise Integration Patterns, szybszym sposobem na ich przyspieszenie byłoby przeczytanie czegoś takiego jak artykuł Wikipedii na temat integracji aplikacji biznesowych .
Po przeczytaniu i zrozumieniu tematu znacznie bardziej prawdopodobne jest zrozumienie celu Apache Camel
HTH
Jeśli znasz Wzorce integracji z przedsiębiorstwami, Apache Camel to jedna z platform integracyjnych, która implementuje wszystkie EIP.
I możesz wdrożyć Camel jako samodzielną aplikację w kontenerze internetowym.
Zasadniczo, jeśli musisz zintegrować kilka aplikacji z różnymi protokołami i technologiami, możesz użyć Camel.
Definicja z innej perspektywy:
Apache Camel to platforma integracyjna. Składa się z niektórych bibliotek Java, co pomaga w implementacji problemów z integracją na platformie Java. Co to oznacza i czym różni się od interfejsów API z jednej strony i magistrali Enterprise Service Bus (ESB) z drugiej strony, opisano w moim artykule „ Kiedy używać Apache Camel ”.
Co to dokładnie jest
Apache Camel to lekka platforma integracyjna, która implementuje wszystkie wzorce integracji korporacyjnej. Możesz łatwo integrować różne aplikacje przy użyciu wymaganych wzorców.
Możesz używać Java, Spring XML, Scala lub Groovy. Dostępna jest prawie każda technologia, jaką możesz sobie wyobrazić, na przykład HTTP, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, Netty itp.
Przeczytaj ten artykuł i artykuł ze wzorem EIP
Jak współdziała z aplikacją napisaną w Javie?
Wielbłąd używa języka specyficznego dla domeny Java lub DSL do tworzenia wzorców lub tras integracji w różnych językach specyficznych dla domeny (DSL), jak podano poniżej.
Java DSL - DSL oparty na Javie, wykorzystujący styl płynnego konstruktora.
Historia Enterprise Integration Pattern dotyczy następujących pojęć:
Wiadomość, punkt końcowy, producent, konsument, routing, magistrala, transformacja i przetwarzanie .
Spójrz na ten artykuł Anirban Konar na jeden z przypadków użycia w czasie rzeczywistym.
Czy to coś, co pasuje do serwera?
Działa jako pomost między wieloma podsystemami przedsiębiorstwa.
Czy to niezależny program?
Apache Camel, platforma integracyjna, integruje różne niezależne aplikacje.
Główna zaleta Camel : Możesz integrować różne aplikacje z różnymi technologiami (i różnymi protokołami), stosując te same koncepcje dla każdej integracji.
Większość „nowych” rzeczy w informatyce wcale nie jest tak naprawdę nowa, są po prostu tajemniczym opakowaniem wokół czegoś, co już zostało dobrze zrozumiane. Kiedy są trudne do zrozumienia, to zwykle dlatego, że ktoś zdecydował się wynaleźć nowych warunków językowych lub skolonizować istniejące warunki dla innych celów (przykładem dobra , że jest odwrócenie deweloperów X co «klient» i «serwer» mean).
Camel to oparte na Javie opakowanie / API dla oprogramowania pośredniego między aplikacjami.
Oprogramowanie pośrednie to ogólny termin określający oprogramowanie świadczące usługi tłumaczeń ustnych między podmiotami nieposiadającymi wspólnego języka lub typów danych.
Taki właśnie jest Camel na dole. Możemy rozwinąć opis, zauważając, że zawiera on oprogramowanie pośrednie typu EIP.
Nie zapewnia samego oprogramowania pośredniego, ponieważ nie może poznać szczegółów komunikacji między aplikacjami. Ale zapewnia interfejs API do tworzenia niezmiennych części tego oprogramowania pośredniego (utwórz punkt początkowy, utwórz punkt końcowy, stwórz warunki do rozpoczęcia i zakończenia itp.)
Mam nadzieję, że to pomaga.
Oto kolejna próba.
Wiesz, jak istnieją / były rzeczy takie jak Webmethods, ICAN Seebeyond, Tibco BW, IBM Broker. Wszyscy pomogli w rozwiązaniach integracyjnych w przedsiębiorstwie. Narzędzia te są powszechnie znane pod nazwą narzędzia Enterprise Application Integration (EAI).
Wokół tych technologii zbudowano głównie narzędzia typu „przeciągnij i upuść”, aw częściach trzeba pisać adaptery w Javie. Te kody adaptera były albo nieprzetestowane, albo miały słabe oprzyrządowanie / automatyzację podczas testowania.
Podobnie jak w przypadku wzorców projektowych w programowaniu, masz wzorce integracji korporacyjnej dla popularnych rozwiązań integracyjnych. Rozsławili je książka o tym samym tytule autorstwa Gregora Hohpe i Bobby'ego Woolfa.
Chociaż jest całkiem możliwe wdrożenie rozwiązań integracyjnych korzystających z jednego lub wielu EIP, Camel jest próbą zrobienia tego w twojej bazie kodu przy użyciu jednego z XML, Java, Groovy lub Scala.
Camel obsługuje wszystkie wzorce integracji przedsiębiorstwa wymienione w książce za pośrednictwem bogatego DSL i mechanizmu routingu.
Camel jest więc konkurencyjnym technoloyem do innych narzędzi EAI z lepszą obsługą testowania kodu integracji. Kod jest zwięzły ze względu na języki specyficzne dla domeny (DSL). Jest czytelny nawet dla użytkowników biznesowych i jest bezpłatny i zapewnia produktywność.
Istnieje wiele ram, które ułatwiają nam przesyłanie wiadomości i rozwiązywanie problemów z przesyłaniem wiadomości. Jednym z takich produktów jest Apache Camel.
Większość typowych problemów ma sprawdzone rozwiązania zwane wzorcami projektowymi. Wzorzec projektowania komunikatów to wzorce integracji korporacyjnej (EIP), które są dobrze wyjaśnione tutaj . Wielbłąd Apache pomaga nam wdrożyć nasze rozwiązanie za pomocą EIP.
Siłą szkieletu integracji jest jego zdolność do ułatwiania nam poprzez EIP lub inne wzorce, liczbę transportów i komponentów oraz łatwość rozwoju, na której wielbłąd Apache stoi na szczycie listy
Każda z ram ma swoje zalety. Niektóre ze specjalnych cech wielbłąda Apache są następujące.
Mówiąc wprost, wielbłąd wykonuje (wiele) rzeczy bez większego kodu płyty kotłowej.
Aby dać Ci perspektywę, Java DSL podana poniżej stworzy punkt końcowy REST, który będzie w stanie zaakceptować XML składający się z Listy Produktów i podzieli go na wiele produktów i wywoła z nim metodę Process BrandProcessor. I po prostu dodając .parallelProcessing (zwróć uwagę na skomentowaną część), będzie równolegle przetwarzał wszystkie obiekty produktu. (Klasa produktu to wygenerowany przez JAXB / XJC kod pośredniczący Javy z XSD, do którego ogranicza się wejściowy plik XML). Taki kod (wraz z kilkoma zależnościami Camel) wykona zadanie, które zajęło 100 s wierszy kodu Java.
from("servlet:item-delta?matchOnUriPrefix=true&httpMethodRestrict=POST")
.split(stax(Product.class))
/*.parallelProcessing()*/
.process(itemDeltaProcessor);
Po dodaniu identyfikatora trasy i instrukcji logowania
from("servlet:item-delta?matchOnUriPrefix=true&httpMethodRestrict=POST")
.routeId("Item-DeltaRESTRoute")
.log(LoggingLevel.INFO, "Item Delta received on Item-DeltaRESTRoute")
.split(stax(Product.class))
.parallelProcessing()
.process(itemDeltaProcessor);
To tylko próbka, Camel to znacznie więcej niż tylko punkt końcowy REST. Wystarczy spojrzeć na listę komponentów wtykowych http://camel.apache.org/components.html
Wielbłąd pomaga w routingu, transformacji, monitorowaniu.
Korzysta z tras; które można opisać jako:
Gdy magistrala usług odbiera określoną wiadomość, kieruje ją przez liczbę miejsc docelowych usług / brokerów, takich jak kolejka / tematy. Ta ścieżka jest znana jako trasa.
Przykład: twoja aplikacja giełdowa otrzymała dane od analityka, zostanie przetworzona przez aplikację / komponent internetowy, a następnie wyniki zostaną opublikowane wszystkim zainteresowanym / zarejestrowanym członkom w celu aktualizacji konkretnej akcji.
Załóżmy, że tworzysz firmę zajmującą się handlem elektronicznym, taką jak Amazon, i chcesz skupić się wyłącznie na strategii / wyborze produktów do sprzedaży. w przeciwieństwie do floty dostawczej Amazon, zamiast zajmować się przenoszeniem towarów od sprzedawców do magazynu, wprowadzając w nim zmiany, takie jak pakowanie i wysyłając je do innych miast i klientów. Zatrudniasz firmę, która to wszystko robi, i po prostu podajesz im informacje o wszystkich lokalizacjach magazynowych, typach pojazdów, lokalizacjach dostaw oraz listę, kiedy to zrobić. Potem sami sobie z tym poradzą, to będzie Apache Camel. Zajmują się przenoszeniem rzeczy z jednego końca na drugi, po przekazaniu im rzeczy, dzięki czemu możesz swobodnie skupić się na innych rzeczach.
Camel to framework ze spójnym API i modelem programowania do integracji aplikacji. Interfejs API opiera się na teoriach we wzorcach integracji korporacyjnej - tj. Wiązce wzorców projektowych, które zwykle używają przesyłania komunikatów. Zapewnia gotowe do użycia implementacje większości tych wzorców, a dodatkowo zawiera ponad 200 różnych komponentów, których można użyć do łatwej komunikacji z wszelkiego rodzaju innymi systemami. Aby korzystać z Camel, najpierw napisz logikę biznesową w POJO i zaimplementuj proste interfejsy skupione wokół komunikatów. Następnie użyj DSL Camela, aby utworzyć „Trasy”, które są zestawami reguł do łączenia aplikacji.
Z pozoru funkcjonalność Camela konkuruje z tradycyjnymi produktami Enterprise Service Bus. Zazwyczaj myślimy, że Camel Route jest komponentem „mediacji” (aka orkiestracji), który żyje po stronie serwera, ale ponieważ jest to biblioteka Java, jest łatwa do osadzenia i może równie dobrze działać na aplikacji klienckiej i pomóc w integracji z usługami punkt-punkt (inaczej choreografia). Możesz nawet zabrać swoje POJO, które przetwarzają wiadomości na trasie Wielbłąda, i łatwo zawirować je w swoich zdalnych procesach konsumenckich, np. Jeśli potrzebujesz skalować tylko jeden element niezależnie. Możesz używać Camel do łączenia tras lub procesorów za pomocą dowolnej liczby różnych zdalnych transportów / protokołów w zależności od potrzeb. Czy potrzebujesz niezwykle wydajnego i szybkiego protokołu binarnego, lub taki, który jest bardziej czytelny dla człowieka i łatwy do debugowania? Co jeśli chcesz zmienić? Z Camel jest to zwykle tak proste, jak zmiana linii lub dwóch na trasie i wcale nie zmienia logiki biznesowej. Lub możesz wesprzeć oba - możesz uruchomić wiele tras jednocześnie w kontekście wielbłąda.
Naprawdę nie musisz używać Camel do prostych aplikacji, które będą działać w jednym procesie lub JVM - byłoby to przesadą. Ale nie jest to koncepcyjnie trudniejsze niż kod, który sam możesz napisać. A jeśli zmienią się twoje wymagania, oddzielenie logiki biznesowej i kodu kleju ułatwia utrzymanie z czasem. Kiedy nauczysz się Camel API, możesz łatwo używać go jak szwajcarskiego noża wojskowego i szybko go stosować w wielu różnych kontekstach, aby zmniejszyć ilość niestandardowego kodu, który w innym przypadku musiałbyś napisać. Możesz nauczyć się jednego smaku - na przykład Java DSL, na przykład płynnego interfejsu API, który można łatwo łączyć - i łatwo wybierać inne smaki.
Ogólnie rzecz biorąc, Camel doskonale pasuje, jeśli próbujesz wykonać mikrousługi. Uważam, że jest to bezcenne dla architektury ewolucyjnej, ponieważ można odłożyć wiele trudnych, „łatwych do pomyłki” decyzji dotyczących protokołów, transportu i innych problemów związanych z integracją systemu, dopóki nie dowiesz się więcej o swojej dziedzinie problemów. Skoncentruj się na EIP i podstawowej logice biznesowej i przełącz się na nowe trasy z „odpowiednimi” komponentami, gdy dowiesz się więcej.
Tak, to chyba trochę za późno. Ale jedną rzeczą, którą należy dodać do komentarzy wszystkich innych, jest to, że Camel to tak naprawdę zestaw narzędzi, a nie pełny zestaw funkcji. Należy o tym pamiętać podczas opracowywania i konieczności wykonywania różnych transformacji i konwersji protokołu.
Sam Camel opiera się na innych ramach, dlatego czasami musisz je również zrozumieć, aby zrozumieć, który najlepiej pasuje do twoich potrzeb. Istnieje na przykład wiele sposobów obsługi REST. Na początku może to być nieco mylące, ale kiedy zaczniesz używać i testować, poczujesz się swobodnie, a Twoja wiedza na temat różnych koncepcji wzrośnie.
Apache Camel to platforma Java do integracji z przedsiębiorstwami. Np .: - jeśli budujesz aplikację internetową, która współdziała z interfejsami API wielu dostawców, możemy użyć wielbłąda jako narzędzia integracji zewnętrznej. Możemy z tym zrobić więcej w zależności od przypadku użycia. Publikacje „Wielbłąd w akcji” Manninga to świetna książka do nauki wielbłąda. Integracje można zdefiniować jak poniżej.
Java DSL
from("jetty://0.0.0.0:8080/searchProduct").routeId("searchProduct.products").threads()
.log(LoggingLevel.INFO, "searchProducts request Received with body: ${body}")
.bean(Processor.class, "createSearchProductsRequest").removeHeaders("CamelHttp*")
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
.to("http4://" + preLiveBaseAPI + searchProductsUrl + "?apiKey=" + ApiKey
+ "&bridgeEndpoint=true")
.bean(Processor.class, "buildResponse").log(LoggingLevel.INFO, "Search products finished");
Ma to na celu utworzenie punktu końcowego interfejsu API REST, który z kolei wywołuje zewnętrzny interfejs API i odsyła żądanie
Wiosna DSL
<route id="GROUPS-SHOW">
<from uri="jetty://0.0.0.0:8080/showGroups" />
<log loggingLevel="INFO" message="Reqeust receviced service to fetch groups -> ${body}" />
<to uri="direct:auditLog" />
<process ref="TestProcessor" />
</route>
Wychodzę na twoje pytania
Mam nadzieję, że to pomoże
Apache Camel to lekka platforma integracyjna, która implementuje wszystkie wzorce integracji korporacyjnej. Możesz łatwo zintegrować różne aplikacje przy użyciu wymaganych wzorców. Możesz używać Java, Spring XML, Scala lub Groovy.
Apache Camel działa na wirtualnej maszynie Java (JVM). ... Podstawową funkcjonalnością Apache Camel jest silnik routingu. Przydziela wiadomości na podstawie powiązanych tras. Trasa zawiera logikę przepływu i integracji. Jest realizowany przy użyciu EIP i określonej DSL.
To jak połączenie rurociągu
From---->To
Pomiędzy możesz dodać tyle kanałów i potoków. Kran może być dowolnego typu automatyczny lub ręczny do przepływu danych i trasy do ukierunkowania przepływu.
Obsługuje i ma implementację dla wszystkich typów i rodzajów przetwarzania. I do tego samego przetwarzania wiele podejść, ponieważ ma wiele składników, a każdy składnik może również zapewnić pożądany wynik przy użyciu różnych metod.
Na przykład, transfer plików może odbywać się na wielbłądzie z przeniesionymi lub skopiowanymi plikami typów, a także z folderu, serwera lub kolejki.
-from-->To
- from-->process-->to
- from-->bean-->to
- from-->process-->bean-->to
-from-->marshal-->process-->unmarshal-->to
Folder z / do ----, direct, seda, vm może być dowolny
Kolejny punkt widzenia (oparty na bardziej podstawowych zagadnieniach matematycznych)
Najbardziej ogólną platformą komputerową jest [ https://en.wikipedia.org/wiki/Turing_machine]
Wystąpił problem z maszyną Turinga. Wszystkie dane wejściowe / wyjściowe pozostają w maszynie Turinga. W prawdziwym świecie źródła wejściowe i odbiorniki wyjściowe są zewnętrzne w stosunku do naszej maszyny Turinga i ogólnie są zarządzane przez systemy poza naszą kontrolą. Oznacza to, że zewnętrzny system będzie wysyłać / odbierać dane w dowolnym formacie w dowolnym dowolnym harmonogramie danych.
Pytanie: Jak udaje się sprawić, by niezależne maszyny Turinga rozmawiały ze sobą w najbardziej ogólny sposób, tak aby każda maszyna Turinga widziała swoich partnerów jako źródło danych wejściowych lub źródło danych wyjściowych?
Odpowiedź: Używanie czegoś takiego jak wielbłąd, muł, BizTalk lub jakikolwiek inny ESB, który odciąga przetwarzanie danych od ukończenia różnych maszyn do „fizycznego” (lub wirtualnego oprogramowania).