zoukankan      html  css  js  c++  java
  • mule的初步认识

    最近在工作中看到多次mule这个词,不知道是什么东西,今天又看到一个server的type是JBOSS & MULE, 就搜了一把,看看这到底是个什么东西,初步了解一下。

    what is MULE?

    一个以Java为核心的轻量级的消息框架和整合平台。它使得开发人员可以快速,简单的连接多个应用。 
    目前许多公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。 
    Mule基于Enterprise Service 
    Bus(ESB)架构思想。ESB的主要特性是通过扮演一个中转系统的角色,允许不同的应用系统交互,中转系统在内网或Internet上的应用系统间搬运数据。 
    目前市场上有一些商业的ESB实现。尽管如此,大部分提供有限的功能,或在已存应用服务器/消息服务器之上构建,将你锁定在特定的供应商(将你固定的ESB厂商)。Mule是供应商中立的,因此不同厂商的实现可以插入进来。当你使用Mule时,永远不会锁定的特定的供应商。

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

    mule是一个服务器,不同于其他的应用服务器,它的功能是专做请求转发用的吧,类似与代理,个人感觉!

     

    下载,mule是开源软件,可以到mule的官网上下载,mule还有一个带图形界面的版本,叫mule stdio,好像是商业版的。

    下载的是一个zip包,解压出来后,里面的文件夹有bin,example,apps等,

    bin里面有开启服务器的命令mule.bat。

    example里面放的是mule自带的实例,有hello等。

    apps里面放的是自己要发布的项目,里面的项目如果没出错的话,可以在浏览器中请求到的。

     

    自带实例运行:

    打开mule-standalone-3.3.1exampleshello,在hello中有一个mule-example-hello-3.3.1.zip压缩包,把这个压缩包复制到apps目录下,到bin目录下打开服务器,然后在浏览器中请求:http://localhost:8888/?name=Ross,就会返回结果,例子用法在hello文件下的readme.txt文件中有说明。其他例子类似。

     

    一个mule项目中有一个配置文件mule-config.xml,可以打开目录mule-standalone-3.3.1exampleshellosrcmainapp下的配置文件,简单的解释下:配置文件中的主要元素介绍:

    flow定义了一个请求流程,一个flow中有访问入口inbound-endpoint,然后下面有转换器transformer和组件component,他们都是一个类,可以自己编写,都是对消息进行处理的,最后还有一个出口outbound-endpoint,去访问其他服务上的资源。

    这里的消息是指请求到来的时候,mule会把请求中的信息封装为一个消息message对象,里面包括请求头以及你的请求参数。如ip,端口,编码方式等。

     

    关于处理类,有没有想过如果类中有多个方法,你只配置了类,又没指明方法,它怎么会知道调用哪个方法呢,不用担心,你的方法总有参数吧,你提供的消息是什么类型的,就会调用什么类型参数的方法,这里用到了反射机制,如果无匹配的,就会报错的。如果方法需要某个类型的参数,可以在组件类之前使用转换类对消息进行转换。

     

    转换类:一般会继承一个抽象的转换类abstracttransformer类,需要实现一个方法,方法中有你对消息进行处理的逻辑,刚进来的消息类型是一个字符串。

     

    Ps:总结一下mule的请求过程就是,来一个请求,然后再把请求转发到另一台服务器或直接返回,期间会对请求中的消息做一些处理,以及可以发送不同协议的请求,如http,webservice等。

     
  • 相关阅读:
    tomcat启动超时
    sqlserver存储过程及mybatis调用——待续
    linux各种顔色代表
    linux ngix安装
    vue 报错解决:TypeError: Cannot read property '_t' of undefined"
    给iview项目加一个i18n国际化翻译
    初探iview
    vue-eslint配置文件
    js中通过Object.prototype.toString方法----精确判断对象的类型
    判断是对象还是数组的方法
  • 原文地址:https://www.cnblogs.com/tingtwang/p/9133683.html
Copyright © 2011-2022 走看看