mycat和应用程序集成_企业应用程序集成简介
mycat和應用程序集成
本文是我們名為“ EAI的Spring集成 ”的學院課程的一部分。
在本課程中,向您介紹了企業(yè)應用程序集成模式以及Spring Integration如何解決它們。 接下來,您將深入研究Spring Integration的基礎知識,例如通道,轉換器和適配器。 在這里查看 !
目錄
1.簡介 2.企業(yè)整合模式 3.整合策略1.簡介
這是Spring Integration課程的第一部分。 本部分向您介紹什么是企業(yè)集成模式以及如何將不同的策略應用于設計集成解決方案。 之所以要在本課程中獲得這些模式的基礎知識,是因為Spring Integration項目是基于這些模式設計的。 本課程的以下部分將進入Spring Integration項目,并顯示有關如何應用這些模式的實際示例。
2.企業(yè)整合模式
企業(yè)集成模式是由65種設計模式組成的組,該模式以相同的名稱在書中編譯,由Gregor Hohpe和Bobby Woolf于2003年編寫。定義這些設計模式的目的是需要標準化程序并建立為開發(fā)人員提供的參考,以處理建筑集成解決方案。
這組集成設計模式是經過多年經驗豐富的開發(fā)人員對實踐的重新編譯的結果,每個模型都描述了針對特定系統(tǒng)設計問題的基本解決方案,該設計問題與不同系統(tǒng)之間的通信有關。
一旦我們完成本課程,您將看到Spring Integration的API如何基于這些企業(yè)集成模式,因為其設計靈感來自于上本書中解釋的概念。 第一個教程將簡要介紹這些概念,以使您在了解如何構建Spring Integration時熟悉它們。
3.整合策略
應用程序或系統(tǒng)之間的集成任務一直非常困難。 部分原因是應用程序可以用不同的編程語言編寫(由于一個系統(tǒng)無法理解另一個系統(tǒng),因此無法進行通信)或使用不同的數據格式(消息不兼容)。 多年來,為了解決這些問題并完成集成應用程序的挑戰(zhàn),已采用了不同的方法。 基本上有以下四種簡要描述的策略:
文件傳輸
此策略涉及應用程序通過使用文件共享信息。 您可以使用一個或多個應用程序來生成包含信息的文件(生產者),而其他應用程序將使用此數據(消費者)。 要考慮的最重要的事情之一就是確定文件中的數據將采用哪種標準格式,因為所有涉及的應用程序都應該知道如何處理它。 最受歡迎的格式之一是XML的使用。
設置數據格式后,可能會有多個應用程序以不同方式使用該文件中的信息。 為此,使用方應用程序將需要一個具有目標的攔截器,以轉換生成文件的格式,從而使其可以適應應用程序的要求。
圖1
主要優(yōu)點是它使應用程序彼此分離。 消費應用程序不需要了解生產應用程序的內部。 攔截器將處理文件,因此只要它們保持相同的文件格式,任何涉及的應用程序中的更改都不會影響其他應用程序。
另一方面,這種方法通常會花費時間,因此如果您過于頻繁地需要信息,則可能不是理想的選擇。 某些應用程序可能需要盡快顯示更新的信息。 在這種情況下,共享數據庫可能是一個更好的選擇。 要考慮的另一個方面是文件傳輸策略非常不安全,因為它不是事務性的,并且可能存在并發(fā)問題。
共享數據庫
該解決方案基于具有存儲所有需要共享的信息的中央數據庫。 這樣,如果您使用事務管理,則不同的應用程序將能夠同時訪問相同的數據。 通過使用相同的數據庫,檢索到的信息將保持一致并且是最新的。 而且,消費者可以快速訪問信息,以確保您不會獲取過時的數據。 如果使用文件傳輸,這將是您將要面對的缺點之一。
圖2
但是,您必須記住,如果多個應用程序訪問同一數據,則可能會出現性能問題。 某些應用程序可能被阻止,試圖修改被另一個應用程序鎖定的數據。
在設計數據庫架構時會發(fā)現另一個困難。 生成的模式應適合所有涉及的應用程序。 此外,您還必須考慮到架構中的任何更改都會影響它們。 如今,如果您決定使用像MongoDB或Apache Cassandra這樣的NoSQL數據庫,則可能不會成為問題,因為這些類型的數據庫使用無模式數據結構。 考慮每種類型的優(yōu)缺點超出了本教程的范圍。
遠程過程調用
在先前討論的方法中,生產者產生信息(存儲在文件或數據庫中),其他人可以使用它。 但是,如果您需要根據共享數據與其他應用程序進行交互,該怎么辦? 這里存在一個問題,因為生產者不知道使用中的應用程序的內部。 您需要某種抽象機制。 這是遠程過程調用的來源。
圖3
遠程過程調用由一個應用程序通過存根與另一個應用程序直接交互組成。 客戶端通過本地過程調用調用一個存根(client stub),然后存根將消息發(fā)送到服務器,另一個存根(骨架)將在其中接收消息并調用服務器過程。
這種方法的缺點是應用程序緊密耦合,并且調用速度很慢。 這將我們帶到了最后一個策略,即消息傳遞。
訊息傳遞
如果您需要在應用程序之間交換少量信息,則更適合使用消息傳遞 。 消息傳遞的巨大好處是組件(生產者和消費者)是分離的。 生產者可以發(fā)送消息而無需知道對方在哪。 可能會有一個或多個消費者將收到該消息,但這與生產者無關。
圖4
另一個重要功能是消息傳遞可以異步完成。 這意味著生產者可以發(fā)送消息并繼續(xù)其邏輯,而不必阻塞以等待消費者返回響應。 消費者處理完消息并發(fā)送響應后,將通知生產者。
這種方法的主要缺點是它的復雜性,尤其是在處理異步消息傳遞時。
企業(yè)集成模式的作者通常認為此策略是集成企業(yè)應用程序的最佳方法,而Spring Integration項目也基于該策略。 因此,本教程的其余部分將基于此策略。
基于這種策略的架構稱為消息驅動架構。 下一節(jié)將說明其基本概念,在本課程中將廣泛使用它們的基本概念。
4.消息驅動架構
消息驅動的體系結構是基于您在上一節(jié)中看到的消息傳遞策略的體系結構。 下面說明構建此策略的基本概念:
- 消息 :在應用程序之間或同一應用程序的不同組件之間共享的信息量。 此消息是一種數據結構,它由包含有關消息的元信息的標頭和包含我們要共享的信息的正文組成。
- 生產者 :創(chuàng)建(產生)消息并將其發(fā)送到消息通道的組件。 消息可以同步發(fā)送,因此生產者將阻塞其線程并等待,直到收到響應為止。 但是,如果處理可能需要時間,則有更好的選擇; 生產者可以異步發(fā)送消息。
- 消息通道 :消息通道是將生產者連接到一個或幾個使用者的某種管道或隊列。
- 使用者 :從消息通道檢索(消費)消息并對其進行處理的組件。 (可選)將響應發(fā)送回生產者。
這種消息驅動的方法松散地耦合了應用程序。 異步通信以一種應用程序不需要知道另一個應用程序是否處于活動狀態(tài)的方式連接兩個應用程序。 生產者可以發(fā)送消息而忽略它,繼續(xù)自己的工作。 如果發(fā)送過程需要響應,將通知生產者以處理結果。
5.同步和異步通信
同步通信允許兩個部分都處于活動狀態(tài)的實時對話。 發(fā)送方發(fā)送消息,并等待接收方對其進行處理并返回響應。 當生產者需要立即響應以繼續(xù)其任務時,這很有用。 這種通信有其缺點。 例如,如果接收方處理需要時間,則發(fā)送方需要完成的下一個任務將被延遲。 甚至更糟的是,消費者可能不活躍。 常見的解決方案是建立超時并在響應花費太多時間時進行處理。
異步通信允許兩個部分解耦,每個部分可能在不同的時間起作用(接收方在發(fā)送時可能不處于活動狀態(tài))。 當發(fā)件人不需要立即響應時,這種方法很常見。 它將繼續(xù)處理其任務,直到收到響應。 當接收器處理需要時間時,異步通信就足夠了。
Spring Integration允許兩種通信類型,每種通信都有其優(yōu)點和缺點。 在本課程的以下教程中,您將了解如何實現這一目標,并能夠確定在每種情況下哪一種更為合適。
翻譯自: https://www.javacodegeeks.com/2015/09/introduction-to-enterprise-application-integration.html
mycat和應用程序集成
總結
以上是生活随笔為你收集整理的mycat和应用程序集成_企业应用程序集成简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想集团招聘(联想集团招聘电话)
- 下一篇: drill apache_使用Apach