我理解ESB有序列,序列和故障序列,序列与主序列相同吗?
此外,我想知道如果我们在端点中定义接收序列,它是否会覆盖默认行为,并且响应是由指定的接收序列处理的?如果未明确指定接收到的序列,则默认序列是否会处理响应?
互联网上的大多数WSO2 ESB示例都基于代理服务,我想了解如何在没有代理服务的情况下使用序列,请您介绍一下这样的教程吗?
答案 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 ,
这应该会在日志中显示更多信息,让您更容易知道您所处的序列..
随时问我其他的东西,很酷