我知道Mule ESB企业版可以安装在Raspberry Pi上,因为它支持基于arm的处理器。不幸的是,社区版没有它。这使得很难在pi上使用Mule ESB更长时间,因为我没有企业许可证(这是个人项目和企业试用在30天内结束)。我想知道,为什么社区版没有这种支持?在pi上使用社区版是否有任何限制?可以将支持添加到社区版本中吗?有人做过并使用它吗?
答案 0 :(得分:1)
是的,可以在Raspberry PI 3上安装和运行Mule(以及扩展任何armhf / armel机器)。您必须调整安装以确保Mule使用 Linux armhf 32位 Java Service Wrapper(或相关的OS /架构包装器)。具体步骤如下:
像在任何其他计算机上一样安装Mule Standalone:
/opt/mule
(即MULE_HOME=/opt/mule
)并将内容的所有者更改为Mule用户(例如mule:mule
)您应该可以使用$MULE_HOME/bin/mule start|stop|restart
您需要为您的操作系统和处理器架构手动添加Java Service Wrapper支持,对于Raspberry PI 3,它将是Linux armhf 32位。
这个有点棘手,您必须更新 $ MULE_HOME / bin / mule 启动脚本。查找行case "$PROC_ARCH" in
,例如:
'x86_64')
DIST_ARCH="x86"
DIST_BITS="64"
break;;
每个案例都匹配一个特定的硬件名称来定义DIST_ARCH和DIST_BITS变量,允许使用正确的Wrapper文件。添加一个新案例来处理您的Raspberry PI硬件。对于Raspberry 3,它应该类似于armv71
(如果需要,请查看uname -m
):
'armv71')
DIST_ARCH="armhf"
DIST_BITS="32"
break;;
您可能需要更新$MULE_HOME/conf/wrapper.conf
以避免与内存相关的问题。我通常需要使用以下属性:
wrapper.java.initmemory=512
wrapper.java.maxmemory=512
wrapper.java.additional.X=-XX:PermSize=256m
wrapper.java.additional.Y=-XX:MaxPermSize=256m
wrapper.java.additional.Z=-XX:NewSize=512m
wrapper.java.additional.V=-XX:MaxNewSize=512m
当Mule在armv71
硬件上运行时,它现在将使用wrapper-{OS}-{DIST_ARCH}-{DIST_BITS}
,在我们的案例wrapper-linux-armhf-32
中。您应该能够像往常一样运行Mule - 检查日志以查找启动时的任何错误。
此方法已经过Raspberry PI 2和3测试,用于Mule CE 3.7和3.8(它应该适用于以前的版本)。这可能有点棘手,如果您发表评论时有任何问题,我会更新此帖子以添加详细信息。
顺便说一句,只要Java Service Wrapper支持,此方法就可用于添加对任何体系结构和操作系统的支持。
我想知道,为什么社区版没有这种支持?
我不知道,Mule CE现在根本不支持ARM架构。 CE仅支持有限的平台和体系结构列表(即启动脚本过滤体系结构类型)。也许他们根本没有花时间(〜金钱)来增加支持,或者他们故意阻止ARM支持以支持Mule EE。考虑到Mule CE是开源的,理论上有人可以为添加这样的支持做出贡献......(只是说!:)