WSO2MI(Micro Integrator)是一個事件驅動的企業服務總線(Enterprise Service Bus),支持消息路由、數據格式轉換、通訊協議轉換,支持鏈接SAP、KAFKA、FTP、Restful API等。html
WSO2MI主要是用於企業現有不少不一樣架構的項目之間消息傳遞。之因此會產生這樣的狀況,是因爲企業爲了快速創建信息化,而採用不一樣的架構創建了不少項目,待到公司發展壯大後,各個項目間通訊就成爲了一個大麻煩,基於此,WSO2出現了。率先出現的是WSO2EI,但過於笨重,WSO2MI則是跟隨技術進步,能夠容器化部署的輕量級企業消息總線。java
https://github.com/wso2/micro-integrator/releases/download/v1.1.0/wso2mi-1.1.0.ziplinux
mi使用jdk8,首先安裝jdk8,配置好jdk環境git
直接解壓github
unzip wso2mi-1.1.0.zip
進入bin目錄下apache
cd wso2mi-1.1.0/bin
啓動、關閉、重啓,命令以下json
# 啓動 sh micro-integrator.sh start # 關閉 sh micro-integrator.sh stop # 重啓 sh micro-integrator.sh restart
[root@instance-wd4rux07 bin]# sh micro-integrator.sh start Error: JAVA_HOME is not defined correctly. CARBON cannot execute java
產生緣由:因爲我安裝的是openjdk,在profile中沒有JAVA_HOME的配置api
解決辦法:openjdk的安裝位置通常在服務器
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
在/etc/profile中配置JAVA_HOME架構
vi /etc/profile
增長以下配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
刷新配置文件
source /etc/profile
日誌文件位置在repository/logs/wso2carbon.log
打印出micro integrator is started in 5 sec即表示啓動成功
不得不說,對接SAP的IDOC除了商用套件,也只有IDOC了。
SAP鏈接資源包以下所示
sapjco3.jar
libsapjco3.so
sapidoc3.jar
三個資源包均來自SAP官方網站,通常來講,這三個資源包能夠找sap的basis來提供。
注意:下載的時候須要登陸SAP帳號
sapjco3.jar和libsapjco3.so下載地址以下
sapidoc3.jar 下載地址以下
https://support.sap.com/en/product/connectors/jco.html#section_2129803369
特別注意:小編使用的是3.0.14版本
將這兩個jar包放到WSO2的lib中
路徑:wso2mi-1.1.0/lib
將libsapjco3.so放到jdk的lib中
路徑:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre/lib/amd64
在wso2mi文件夾中找到conf,並在conf下建立文件夾sap
在sap文件夾下建立兩個文件s4.dest和s4.server
*.dest文件:MI做爲客戶端來鏈接SAP的配置文件
*.server文件:MI做爲服務端讓SAP來鏈接的配置文件
S4.dest文件內容以下,內容都是由SAP的basis來提供
# SAP Application Server 的 IP 地址 jco.cient.ashost= # SAP Message Server 的 IP 地址 jco.client.mshost= # SAP GateWay 的 IP 地址 jco.client.gwhost= # SAP GateWay 的端口,通常是3301 jco.client.gwserv=3301 # SAP System number 通常是 01 jco.client.sysnr=01 # Sap 的 client jco.client.client=301 # 這裏3是指 TCP/IP ,還有其餘的鏈接方式須要跟SAP的basis聯繫 jco.client.type=3 # SAP 分組 jco.client.group=PUBLIC # SAP用戶名 jco.client.user= # SAP密碼 jco.client.passwd= # 語言 en表示英語 jco.client.lang=en # 空閒斷開時間 jco.client.idle_timeout=300 # 登陸檢查 0表示禁用 1表示啓用 jco.client.logon=0 # message server 的端口 jco.client.msserv=3602 # 是否使用RFC的跟蹤日誌 0表示禁用 1表示啓用 jco.client.trace=1 # SAP的單點登陸 0禁用 1啓用 jco.client.getsso2=0 # SAP的 name, SAP的basis來提供 jco.client.r3name=CSD
S4.server文件內容以下,內容都是由SAP的basis來提供
# SAP中配置的名稱 jco.server.name=WSO2_IDOC # SAP的gateway ip地址 jco.server.gwhost= # SAP gateway的端口 jco.server.gwserv=3301 # SAP中的program id jco.server.progid=WSO2_IDOC jco.server.connection_count=10 # 這個屬性是指 s4.dest 去除後綴文件名 s4 jco.server.repository_destination=s4 jco.server.trace=1 jco.server.unicode=1 jco.server.max_startup_delay=60000
WSO2配置 SAP IDOC監聽器
在conf文件夾下找到 deployment.toml,增長如下配置信息(sap的監聽器配置)
[transport.sap] listener.idoc.enable=true listener.idoc.class="org.wso2.carbon.transports.sap.SAPTransportListener"
WSO2MI鏈接KAFKA 須要如下資源包
將資源包copy到wso2mi-1.1.0/lib下
開發WSO2MI須要使用WSO2的開發工具-WSO2 Integration Studio,綠色免安裝
下載地址
https://wso2.com/integration/integration-studio/
直接解壓,便可使用
WSO2的開發工具和eclipse基本一致。
建立一個WSO2的maven父工程
項目名稱本身定義就行了
在proxy-services文件夾下,建立Proxy Service
建立完成後,會獲得一個*.xml文件
初始文件內容以下
<?xml version="1.0" encoding="UTF-8"?> <proxy name="river" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse"> <target> <!-- 接收消息標籤 --> <inSequence/> <!-- 返回消息標籤 --> <outSequence/> <!-- 錯誤處理標籤 --> <faultSequence/> </target> </proxy>
WSO2MI提供了兩種編輯方式,一種是圖形化界面拖動(以下圖),一種是xml文檔直接編輯。
這裏要留一個WSO2MI開發的坑了,博主稍後專門針對WSO2MI開發寫一篇
WSO2MI打成car包,而後部署到服務器上來運行。
WSO2MI打包有本身的一套體系,請以我爲準。
右鍵上一步生成的項目,點擊Export Composite Application Project
點擊Next,選擇本身的項目,就能夠在響應目錄下生成car包。
上一步咱們已經獲得了car包,接下來,咱們把car包部署到WSO2MI中。
把car包放到/wso2mi-1.1.0/repository/deployment/server/carbonapps
從新啓動WSO2MI