Apache Synapse(http://synapse.apache.org)是一个轻量型的ESB组件。Synapse提供了一些基础的Mediators来完成消息的协议和路由的转换,这个主要依赖于其基于xml格式的synapse configuration。
有必要补充一下,在synapse bin包中使用了wrapper组件(http://wrapper.tanukisoftware.org),在eclipse配置环境中稍微绕过去就可以了。在wrapper.conf中主要值得关注的信息如下:
|
wrapper.java.additional.1=-Dsynapse.xml=repository/conf/synapse.xml
wrapper.java.additional.2=-Daxis2.xml=repository/conf/axis2.xml
wrapper.java.additional.3=-Daxis2.repo=repository
wrapper.java.additional.4=-Djava.endorsed.dirs=lib/endorsed
wrapper.java.additional.5=-Dsynapse.home=.
wrapper.java.additional.6=-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XMLGrammarCachingConfiguration
wrapper.java.additional.7=-Dlog4j.configuration=file:lib/log4j.properties
wrapper.java.additional.8=-Djava.io.tmpdir=work/temp/synapse
wrapper.java.additional.9=-Dresolve.root=repository
# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=org.apache.synapse.SynapseServer
wrapper.app.parameter.2=repository
|
Synapse ESB所实现的功能,似乎和我先前对ESB理解上有所不同。不过这是第一次接触,先把Synapse ESB目前基于axis2的实现,简单说一下。Mediator那一块代码还没有来得及阅读,目前仅大概清楚了Synapse如何接受消息请转交给Mediator处理。
(1) Synapse Server其实主要是依托于axis2的框架,注册一个synaper module。可关注org.apache.synapse.core.axis2.SynapseInitializationModule这个类,其主要是注册了synapse service以及SynapseMessageReceiver。
(3) 通过转移,将请求message转交给synapse server处理。
跟踪程序,trace如下:
|
Thread [HttpServerWorker-1]
LogMediator.mediate(MessageContext) line: 72
SequenceMediator(AbstractListMediator).mediate(MessageContext) line: 58
SequenceMediator.mediate(MessageContext) line: 125
Axis2SynapseEnvironment.injectMessage(MessageContext) line: 178
SynapseMessageReceiver.receive(MessageContext) line: 89
AxisEngine.receive(MessageContext) line: 176
HTTPTransportUtils.processHTTPPostRequest(MessageContext, InputStream, OutputStream, String, String, String) line: 275
ServerWorker.processPost() line: 238
ServerWorker.run() line: 194
ThreadPoolExecutor$Worker.runTask(Runnable) line: 650
ThreadPoolExecutor$Worker.run() line: 675
Thread.run() line: 595
|
发表于 @ 2008年05月14日 19:25:39|评论(loading...)|编辑