您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 消息訂閱發布模式多線程(activemq和rabbitmq誰更適合java學習)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-07 02:45:05【】2人已围观

简介Tuxedo介紹原創2016-04-0221:23:0211點贊waterxcfg304碼齡14年關注1、Tuxedo介紹Tuxedo是什么?Tuxedo是BEA公司(現已被Oracle公司收購)的一

Tuxedo介紹 原創

2016-04-02 21:23:02

11點贊

waterxcfg304

碼齡14年

關注

1、Tuxedo介紹

Tuxedo 是什么?

Tuxedo是BEA公司(現已被Oracle公司收購)的一個客戶機/服務器的“中間件”產品,它在客戶機和服務器之間進行調節,以保證正確地處理事務。它用C語言技術開發的并且有很高性能。

TUXEDO是在、Inter買粉絲 這樣的分布式運算環境中開發和管理三層結構的客戶/服務器型關鍵任務應用系統的強有力工具。它具備分布式事務處理和應用通信功能,并提供完善的各種服務來建立、運行和管理關鍵任務應用系統。開發人員能夠用它建立跨多個硬件平臺、數據庫和操作系統的可互操作的應用系統。

Tuxedo 的主要作用是:

屏蔽分布式環境中各種通信協議、硬件體系結構、操作系統、數據庫和其它應用服務等方面的差異,使分布于網絡節點上的應用程序的各個單元部件之間能夠進行互操作,并協調操作的一致性和完整性,最大限度地節省系統資源,提高系統性能。

* Tuxedo 已經廣泛地應用于金融、電信、制造業等各行各業的核心業務系統。

三層架構

從左邊往右依次為:客戶端層(表現層),中間件服務層(業務邏輯層),數據庫服務器層(數據層)。這種典型的三層架構應用非常廣泛。對于應用weblogic中間件的系統一般采用的B/S架構,絕大部分采用HTTP協議,少量的系統用java編寫的客戶端,使用的是RMI 協議,或J2EE里的其它協議。

對于tuxedo中間件使用的是tuxedo協議,前端開發工具可以是各式各樣,VC++ 、java 、Delphi 、VB 等。

Tuxedo 的通訊過程

Tuxedo 服務器處理請求的方式與apache有本質的區別。

Apache服務器處理請求,由客戶端發出請求到服務器,由服務器對請求進行處理后將數據返回給客戶端。

Tuxedo 服務器一次請求需要兩次進行兩次交互,Tuxedo有兩個負責通訊的進程,一個為WSL,WSL的數量可以進行配置,典型的配置一般兩、三個;WSH可以有N多個。客戶端通過IP地址和端口號與WSL建立連接,由WSL認證請求是否合法,在WSL的響應中包含了另外一個IP地址和端口號;然后,客戶端通過拿到的新的IP地址和端口號去請求WSH 。

客戶端程序由GUI 與 Tuxeo通訊兩部分組成,GUI部分主要由開發人員關心如何設計,通訊部分可能設計成幾個函數供開發人員調用。對于性能測試人員可能更關心客戶端與服務器之間的通訊過程。

2、tuxedo相關概念

IPC: Inter-Process Communication 進程間通信: 管道、信號量(semaphore)、共享內存(shared memory)、消息隊列(Message Queue)。

管道是UNIX系統IPC的最古老形式,數據只能單向流動。

Tuxedo在客戶機和服務器通信中大量使用UNIX系統的消息隊列。

SSSO(Single Server Single Queue)模式:每個客戶機都有一個響應隊列來接受客戶端請求。

MSSO(Multiple Server Single Queue)模式:多個服務器共享同一個請求隊列。

信號量包含一個計數器,表示某個資源正在被訪問和訪問的次數,用來控制多線程對共享數據的訪問。

Tuxedo使用共享內存存儲公告牌,用來公告進程狀態信息和需要在進程間共享或傳遞的數據。

-------------------------------------------------------------

Tuxedo的配置文件稱為UBBCONFIG或ubb,包含了域(Domain)、邏輯機器(Machine)、服務器組(Group)、服務進程(Server)、服務(Service)的定義。運行前,需要把UBBCONFIG裝載成二進制文件,稱為TUXCONFIG。

Tuxedo服務啟動時,執行tpsvrinit()函數,可以打開一些如數據庫之類的資源供以后使用

Tuxedo服務停止時,執行tpsvrdown()函數,關閉資源

服務程序調用tpreturn()函數來結束服務請求,并返回一個緩沖區,必要時,將它傳給客戶程序。

--------------------------------------------------------

ATMI環境支持的C/S通信方式:請求/應答式通信、回話通信、隊列通信、事件代理通信、消息通知

請求/應答式通信:同步調用(tpcall)、異步調用(tpacall)、嵌套調用、轉發調用(tpforward)

轉發調用和嵌套調用類似,不同的是最里層的嵌套服務可以直接給客戶程序一個響應,而不必按照調用棧 逐級返回。

回話方式:tpsend()/tprecv() 基于事件,分通告和代理

void (**p)(): 定義了一個指向函數指針的指針p

tpsetunsol(p) : 將p指向的函數func設置為客戶機的事件處理器。

tpchkunsol(): 檢查意外事件

事件代理: tppost()/tpsubscribe() 消息發布/訂閱

Tuxedo提供了兩個事件代理器(TMUSREVT TMSYSEVT)來處理訂閱請求。

隊列存儲: tpenqueue() / tpdequeue()

Tuxedo/Q用到了Tuxedo提供的兩個服務器:消息隊列服務器(TMQUEUE)和消息轉發服務器(TMQFORWARD)

---------------------------

多系統多機之間通信需要每臺機器上都有一個Bridge進程,通過TCP/IP通信,Bridge進程維持一個長連接,一旦建立不會斷掉。

TUXEDO應用系統的客戶端訪問TUXEDO服務器上的服務的過程圖:

說明:

WS(Workstation Extension Proct)用于指TUXEDO產品的客戶端部分

WSC Workstation Client

WSL(Workstation Listener) TUXEDO系統自帶的一個SERVER,它偵聽一個指定的端口,WSC最初與該SERVER建立連接

WSH(Workstation Handler)TUXEDO系統自帶的一個SERVER,由它處理WSC與TUXEDO SERVER之間的通訊。

Bulletin Board(公告板)TUXEDO把系統的配置保存在一個共享內存中,該共享內存稱為公告板(BB)

BBL TUXEDO的管理進程,主要對公告板等進行管理

Workstation Client與TUXEDO SERVER建立連接的過程為:

1. WSC 調用tpinit()或tpchkauth()

2. WSC采用在WSNADDR中指定的IP地址與服務端的WSL建立連接

3. WSL為該WSC指定一個WSH,并把該WSH的偵聽端口返回給WSC

4. WSC采用返回的端口與指定的WSH建立連接,并與WSL斷開連接,這之后WSC與TUXEDO SERVER之間的通訊通過WSH進行處理,與WSL無關。

5. tpinit()或tpchkauth()調用返回。

----------------------------------------------------------

單域模式Single-Domain Model。單機模式 Single Host Model, 多機模式Multi-Processor Model

多域模式Multi-Domain Model

網絡請求不做異步處理放在什么位置

容器

異步處理與同步處理是對立的,而產生他們的是多線程或者多進程

異步處理的好處就是提高設備使用率,從而在宏觀上提升程序運行效率

常見多線程,消息中間件,發布訂閱的廣播模式,其根據邏輯在于先把請求承接下來,放入容器中,在從容器中把請求取出,統一調度處理

網絡請求是通用的HTTP請求軟件,用以大批量地向WEB服務器請求服務

求救,分布式事務怎么處理

1

性能和時延問題在服務化之前,業務通常都是本地API調用,本地方法調用性能損耗較小

服務化之后,服務提供者和消費者之間采用遠程網絡通信,增加了額外的性能損耗:1)客戶端需要對消息進行序列化,主要占用CPU計算資源

2)序列化時需要創建二進制數組,耗費JVM堆內存或者堆外內存

3)客戶端需要將序列化之后的二進制數組發送給服務端,占用網絡帶寬資源

4)服務端讀取到碼流之后,需要將請求數據報反序列化成請求對象,占用CPU計算資源

5)服務端通過反射的方式調用服務提供者實現類,反射本身對性能影響就比較大

6)服務端將響應結果序列化,占用CPU計算資源

7)服務端將應答碼流發送給客戶端,占用網絡帶寬資源

8)客戶端讀取應答碼流,反序列化成響應消息,占用CPU資源

通過分析我們發現,一個簡單的本地方法調用,切換成遠程服務調用之后,額外增加了很多處理流程,不僅占用大量的系統資源,同時增加了時延

一些復雜的應用會拆分成多個服務,形成服務調用鏈,如果服務化框架的性能比較差、服務調用時延也比較大,業務服務化之后的性能和時延將無法滿足業務的性能需求

1

1RPC框架高性能設計影響RPC框架性能的主要因素有三個

1)I/O調度模型:同步阻塞I/O(BIO)還是非阻塞I/O(NIO)

2)序列化框架的選擇:文本協議、二進制協議或壓縮二進制協議

3)線程調度模型:串行調度還是并行調度,鎖競爭還是無鎖化算法

1

I/O調度模型在I/O編程過程中,當需要同時處理多個客戶端接入請求時,可以利用多線程或者I/O多路復用技術進行處理

I/O多路復用技術通過把多個I/O的阻塞復用到同一個select的阻塞上,從而使得系統在單線程的情況下可以同時處理多個客戶端請求

與傳統的多線程/多進程模型比,I/O多路復用的最大優勢是系統開銷小,系統不需要創建新的額外進程或者線程,也不需要維護這些進程和線程的運行,降低了系統的維護工作量,節

很赞哦!(74336)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:山东聊城茌平县

工作室:小组

Email:[email protected]