溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mule的優(yōu)點(diǎn)和缺點(diǎn)是什么

發(fā)布時間:2021-11-25 16:50:25 來源:億速云 閱讀:378 作者:柒染 欄目:編程語言

mule的優(yōu)點(diǎn)和缺點(diǎn)是什么,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

優(yōu)點(diǎn)
1.開源 https://github.com/mulesoft/mule
2.豐富的connector ,可以通過不同的形式來連接各個系統(tǒng)JMS、Web Service、JDBC、HTTP等
3.components(組件)很多,可選的處理數(shù)據(jù)方式多
4.transformers也很豐富,可擴(kuò)展 json、xml、dom、二進(jìn)制、wsdl、java等
5.mule esb 采用java實(shí)現(xiàn),java的優(yōu)點(diǎn)之一進(jìn)行企業(yè)級應(yīng)用開發(fā),esb 的作用就是提供各個系統(tǒng)之間的交互平臺:數(shù)據(jù)傳輸總線,使用開源Java實(shí)現(xiàn)也是很多公司選擇之一,用的企業(yè)多了,就會發(fā)展更快更加成熟
6.不修改現(xiàn)有組件,低耦合的實(shí)現(xiàn)業(yè)務(wù)邏輯和消息邏輯完全分離開
7.支持集群、故障轉(zhuǎn)移和負(fù)載均衡,多種部署方式:Tomcat、BEA WebLogic、JBoss,經(jīng)過調(diào)研發(fā)現(xiàn)還是自身自帶的mule-standalone-3.9.0好用

缺點(diǎn)
1.集群非常弱,只能配置一個主實(shí)例和一個從實(shí)例,不支持flow和基于模式的配置,可以使用nginx集群,效果還可以接受
2.企業(yè)版和社區(qū)版區(qū)別 https://www.mulesoft.com/cn/platform/soa/mule-esb-enterprise

教程
https://developer.mulesoft.com/tutorials-and-how-tos

連接mysql數(shù)據(jù)庫,部署在mule-standalone-3.6.0容器中,經(jīng)測試可以正常連接查詢數(shù)據(jù)庫(4.1.1版本部署有問題)

正在測試在Tomcat容器下部署(較繁瑣官網(wǎng)demo有誤差),并用nginx做集群
tomcat下部署成功。但是tomcat下部署非常麻煩,
1項目需要修改成Maven項目,配置web.xml
2tomcat中需要配置很多mule的jar包,配置繁瑣且容易出錯
3各種版本兼容問題
4啟動部署慢需要 107710ms

http://192.168.1.39/Test
后經(jīng)過調(diào)研 使用mule提供的官方mule-standalone容器即可,經(jīng)過測試部署成功,并且用nginx做了負(fù)載均衡,部署了2個mule應(yīng)用,都可以訪問,但是需要修改mule中http的端口號,
mule-standalone容器中無法修改,跟tomcat有區(qū)別,mule項目中配置監(jiān)聽端口才會生效,端口跟項目中的Http配置走,理論可以監(jiān)聽任何端口。

項目中Http配置必須配置成All Interfaces [0.0.0.0] (Default) 不能配置localhost 否則部署到linux下,只能本地localhost訪問。很大的坑(注意)

demo
https://docs.mulesoft.com/mule-user-guide/v/3.9/mel-cheat-sheet

CE 社區(qū)版本 EE企業(yè)版本
https://docs.mulesoft.com/anypoint-mq/

jersey教程
https://jersey.github.io/documentation/latest/index.html

mule MEL
https://docs.mulesoft.com/mule-user-guide/v/3.9/mule-expression-language-mel
Mule Expression Language Reference

遠(yuǎn)哥視頻 mule
http://i.youku.com/tavenli

1.必須熟悉MEL(Mule Expression Language)語言
2.了解MuleMessage結(jié)構(gòu)和Payload對象
3.對常用的connector、scoper、component、transformer、filter、flowControl、errorHanding要熟悉
4.了解APIKit Router和 APIKit Console,熟悉RAML

MEL表達(dá)式
#[表達(dá)式]
#[server.dateTime] 獲取服務(wù)器時間
#[2+2 == 4]
#[message.inboundProperties['http.query.params']['uId']] 獲取http請求的uId參數(shù)
#[message.inboundProperties.city] / #[message.inboundProperties['city']]
#[xpath('/user/username').text]
#[payload]
#[json:visitGuid]
一般來說,當(dāng)使用POST方法傳遞JSON數(shù)據(jù)到HTTP組件后,此時如果放置一個Logger組件,會發(fā)現(xiàn)經(jīng)過HTTP組件后,payload的類型實(shí)際是org.glassfish.grizzly.utils.BufferInputStream,因?yàn)榻?jīng)過HTTP后將負(fù)載變?yōu)榱肆鞯男问搅恕?
如果需要還原為JSON格式字符串,方法有兩個:
(1)在HTTP組件后,使用Object to String組件將payload轉(zhuǎn)為String,最簡單的方法。
(2)使用MEL表達(dá)式#[message.payloadAs(java.lang.String)]
(3)java中可以繼承AbstractMessageTransformer,然后通過MuleMessage類的getPayloadAsString()方法

mule四大對象
server / mule / app / message

Message Variables分為2中
flowVars 只在同一個Flow中使用
sessionVars 只在同一個appliaction下的所有Flow使用

安裝安全組件
http://security-update-site.s3.amazonaws.com

mule調(diào)用亂碼問題
<head>
<meta http-equiv="Content-Type" content="txt/plain;charset=utf-8"/>
</head>
<form action="http://localhost:8081/createOrder" method="post" accept-charset="GB18030">

看完上述內(nèi)容,你們掌握mule的優(yōu)點(diǎn)和缺點(diǎn)是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI