对WSO2 ESB序列和主序列的澄清

时间:2015-03-16 00:07:44

标签: wso2esb

我理解ESB有序列,序列和故障序列,序列与主序列相同吗?

此外,我想知道如果我们在端点中定义接收序列,它是否会覆盖默认行为,并且响应是由指定的接收序列处理的?如果未明确指定接收到的序列,则默认序列是否会处理响应?

互联网上的大多数WSO2 ESB示例都基于代理服务,我想了解如何在没有代理服务的情况下使用序列,请您介绍一下这样的教程吗?

2 个答案:

答案 0 :(得分:1)

触发讯息

消息通过以下触发器进入ESB:

A proxy service receives messages that have been sent to a specific endpoint.
A task injects a message into the ESB at a scheduled interval.
A REST API call sends a message to the ESB.

当ESB收到消息时,它会将其发送到代理服务或主序列进行处理。代理或序列配置了消息中介,它控制消息的转换,过滤,转发等方式。

要在ESB中触发消息,请参阅以下主题:

Creating APIs
Working with Proxy Services
Working with Tasks
Using REST

来源= https://docs.wso2.com/display/ESB481/Triggering+Messages

关于主序列和故障序列

中介配置包含两个名为main和fault的特殊序列。所有未发往代理服务的消息都通过主序列发送。默认情况下,主序列只是发送没有中介的消息,因此要添加消息中介,可以在主序列中添加调解器和/或命名序列。

默认情况下,故障序列将记录消息,有效负载以及遇到的任何错误/异常,并且drop mediator将停止进一步处理。您应该使用正确的错误处理配置故障序列,而不是简单地丢弃消息。有关更多信息,请参阅错误处理。

来源= https://docs.wso2.com/display/ESB481/Mediation+Sequences#MediationSequences-mainSequence

  

此外,我想知道如果我们在端点中定义接收序列,它是否会覆盖默认行为,并且响应是由指定的接收序列处理的?如果未明确指定接收到的序列,则默认序列是否会处理响应?

在代理中更正,但默认行为是发送到“out sequence”

答案 1 :(得分:1)

我也是这方面的初学者,只知道我通过(很多)试验和错误知道的事情;)

好的,假设您的默认偏移量为0,那么您的ESB实例应该有2个默认传输/端口:

  

HTTP = 8280   HTTPS = 8243

因此,发送到这些端口的任何消息都将到达主序列,除非它们是特定于服务的端点,例如,对于带有端点的soap消息:

http://localhost:8280 

这将到达默认的主序列,以及以下

https://localhost:8243/services/yourProxyService

将按照yourProxyService的顺序进行。

此外,在[esb_home] /repository/conf/log4j.properties中,设置/取消注释以下行:

log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.httpclient.wire.content=DEBUG
log4j.category.org.apache.synapse=DEBUG ,

这应该会在日志中显示更多信息,让您更容易知道您所处的序列..

随时问我其他的东西,很酷