缺点
1.集群非常弱,只能配置一个主实例和一个从实例,不支持flow和基于模式的配置,可以使用nginx集群,效果还可以接受
2.企业版和社区版区别 https://www.mulesoft.com/cn/platform/soa/mule-esb-enterprise
教程
https://developer.mulesoft.com/tutorials-and-how-tos
连接mysql数据库,部署在mule-standalone-3.6.0容器中,经测试可以正常连接查询数据库(4.1.1版本部署有问题)
正在测试在Tomcat容器下部署(较繁琐官网demo有误差),并用nginx做集群
tomcat下部署成功。但是tomcat下部署非常麻烦,
1项目需要修改成Maven项目,配置web.xml
2tomcat中需要配置很多mule的jar包,配置繁琐且容易出错
3各种版本兼容问题
4启动部署慢需要 107710ms
http://192.168.1.39/Test
后经过调研 使用mule提供的官方mule-standalone容器即可,经过测试部署成功,并且用nginx做了负载均衡,部署了2个mule应用,都可以访问,但是需要修改mule中http的端口号,
mule-standalone容器中无法修改,跟tomcat有区别,mule项目中配置监听端口才会生效,端口跟项目中的Http配置走,理论可以监听任何端口。
项目中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 社区版本 EE企业版本
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
远哥视频 mule
http://i.youku.com/tavenli
1.必须熟悉MEL(Mule Expression Language)语言
2.了解MuleMessage结构和Payload对象
3.对常用的connector、scoper、component、transformer、filter、flowControl、errorHanding要熟悉
4.了解APIKit Router和 APIKit Console,熟悉RAML
MEL表达式
#[表达式]
#[server.dateTime] 获取服务器时间
#[2+2 == 4]
#[message.inboundProperties[‘http.query.params‘][‘uId‘]] 获取http请求的uId参数
#[message.inboundProperties.city] / #[message.inboundProperties[‘city‘]]
#[xpath(‘/user/username‘).text]
#[payload]
#[json:visitGuid]
一般来说,当使用POST方法传递JSON数据到HTTP组件后,此时如果放置一个Logger组件,会发现经过HTTP组件后,payload的类型实际是org.glassfish.grizzly.utils.BufferInputStream,因为经过HTTP后将负载变为了流的形式了。
如果需要还原为JSON格式字符串,方法有两个:
(1)在HTTP组件后,使用Object to String组件将payload转为String,最简单的方法。
(2)使用MEL表达式#[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调用乱码问题
<head>
<meta http-equiv="Content-Type" content="txt/plain;charset=utf-8"/>
</head>
<form action="http://localhost:8081/createOrder" method="post" accept-charset="GB18030">
原文:https://blog.51cto.com/hackerxian/2414444