我是WSO2 ESB的新手,我有一个具有这种特定行为的自定义消息处理器:在从消息存储中检索元素之后,在执行与此消息处理器相关的序列之前执行操作.
我试着详细解释一下.
这是我的ESB消息处理器定义:
<?xml version="1.0" encoding="UTF-8"?>
<!---<messageProcessor class="org.apache.synapse.message.processor.impl.sampler.SamplingProcessor" messageStore="transferFromMessageStore" name="transferFromMessageProcessor" xmlns="http://ws.apache.org/ns/synapse">-->
<messageProcessor class="com.mycompany.toolkit.messageprocessor.SamplingProcessorHeaderRateLimitation" messageStore="transferFromMessageStore" name="transferFromMessageProcessor" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="sequence">transferProcessorSequence</parameter>
<parameter name="interval">1000</parameter>
<parameter name="is.active">true</parameter>
<parameter name="concurrency">1</parameter>
</messageProcessor>
Run Code Online (Sandbox Code Playgroud)
它从transferFromMessageStore(队列)中检索一些元素(XML文档),并将此对象传递给使用它的transferProcessorSequence.xml序列.正如您在此时所看到的,我已经实现了一个自定义消息处理器SamplingProcessorHeaderRateLimit,它只是扩展了org.apache.synapse.message.processor.impl.sampler.SamplingProcessor WSO2类.此时,它仅在执行init()方法时显示日志.我将它部署在我的Carbon服务器上,它可以工作.
在这里,您可以找到整个项目代码.
好但是从我所理解的获得所需的行为我不必简单地扩展SamplingProcessor类,因为为了在每个消息消耗和调度序列之间进行自定义实现,需要扩展类SamplingService类,这一个.
我认为我需要覆盖execute()或fetch(MessageConsumer msgConsumer).
此时应该还可以插入日志,每次从消息存储库中检索元素时都会写入日志文件,在此之前执行与消息处理器相关的序列.
可能吗?
所以我的主要主要是:
1)我是否要创建一个将SamplingService类扩展到我实现自定义消息处理器的同一项目中的类(此行为必须仅用于我的WSO2 ESB项目中的此特定消息处理器,所有其他使用的消息处理器在这个项目中必须使用标准的SamplingService实现).
2)另一个疑问与此自定义SamplingService实现如何传递给我的自定义消息处理器有关.进入SamplingProcessor WSO2类(如何将特定的自定义消息处理器实现与处理其生命周期的自定义SamplingService实现相关联).
我有一个系统,它使用一组丰富的CRUD端点公开REST API来管理不同的资源.REST API也由使用Ajax执行调用的前端应用程序使用.
我想让其中一些调用异步并增加可靠性.
显而易见的选择似乎是消息代理(ActiveMQ,RabbitMQ等......).
从来没有使用过消息代理,我想知道它们是否可以"放在"REST API之前,而不必重写它们.
我不想仅通过消息传递系统访问REST API:对于某些端点,呼叫必须始终是同步的,并且可靠性不太重要(主要是因为如果出现错误,用户会收到即时反馈).
完整的ESB是否可以成为此用例的更好选择?
JBI标准(是?)应该是企业服务总线的标准,特别是在重用/交换不同ESB(或孤独的服务引擎提供商)的功能方面
已知的JBI实现(根据维基百科):
非执行者:
如果不考虑JBI的工作原理,并且它解决了与SCA不同的问题,您是否真的会在ESB选择中考虑它是否符合JBI?还是坚持ESB的能力?
您在何时,何地以及为何在PHP项目中使用ESB?
在哪里,何时以及为什么认为在PHP项目中使用ESB是有意义的?
ESB(以及像Mule这样的ESB辅导员)是否提供PHP和本机LAMP技术所缺乏的任何功能?
编辑
我对这个问题的动机源于我的假设,你实际上从未真正需要骡子.骡子将促进与外部服务的沟通,您可以在没有骡子的情况下处理.在一天结束时,Mule也会产生成本和开销.所以我的问题是指导有人告诉我你真正受益于ESB和Mule这样的工具的场景,或者凭借扎实的知识来猜测.
编辑2
关于Houcem回复我对他的帖子的评论...什么是ESB/Mule的原生LAMP答案?
编辑3
看起来像Tuxedo可能是Mule/ESB的PHP本地替代品.有人有使用这个工具的经验吗?
我和我的团队将致力于APIGEE,这是一个API开发平台,可以在我们的应用程序中公开一些服务.我正在阅读他们的文档,并试图了解APIGEE或任何其他API开发平台(如Mashery)的需求.关于API代理需求的一篇非常好的文章在给定链接中得到了很好的解释,http://apievangelist.com/2011/06/11/the-battle-for-your-api-proxy/
我感到困惑的一个问题是APIGEE与任何ESB如ALSB或Mule之间有什么区别.我们知道Apigee也支持通过http/https/soap等策略和协议进行消息转换.
谁能告诉我两者之间的区别?Esb是否支持更多协议,如SMTP/JMS等.
任何信息都是最受欢迎的
我有一个关于Mule的上下文属性占位符的问题,我有两个文件设置如下:
<context:property-placeholder location="classpath:mule-app-1.properties, file:///etc/mule/conf/mule-app-2.properties" />
Run Code Online (Sandbox Code Playgroud)
首先这是一个有效的配置,其次哪个文件优先于另一个?app1或app2文件?
-S
我需要推荐一个开源的业务流程管理BPM软件引擎来使用.
任何人都可以建议使用这样的BPM软件吗?
谢谢你的时间.
任何人都可以在初级中级层面解释企业服务总线环境中"总线","传输"和"端点"的术语吗?我是一名C#开发人员,现在有几年经验,但只是刚开始使用ESB.
似乎"总线"实际上是一个可以发送和接收消息的队列.我很好.然而,我正在使用NServiceBus处理一些现有的代码,我想如果我理解了"端点"和"传输"术语,我会在我的理解中实现大幅度的飞跃.
我将评估开源SOA解决方案.有什么选择?
我正在寻找提供(可能)完整SOA堆栈的东西.
我想要以下功能 -
现在Glassfish ESB看起来是个不错的选择.还有其他好的Stacks吗?
在像Apache Camel这样的ESB上,什么机制实际上是沿着从端点到端点的路由"前进"(拉/推)消息?
请问骆驼RouteBuilder刚刚组成的图形Endpoints和Routes以及知道哪些目的地/下一Endpoint传递一个消息给它访问某后Endpoint还是做Endpoints自己知道这是因为它已经处理了消息的下一个目的地.
无论哪种方式,我都很困惑:
RouteBuilder知道通过系统的消息"流",那么这RouteBuilder需要知道何时Endpoint A应该将消息传递给Endpoint Bvs 旁边的业务逻辑Endpoint C,但是在所有Camel示例中我看到这个业务逻辑没有存在; 和Endpoints一起将它们组合在一起并破坏了SOA/ESB/EIP等的一些基本原则.esb ×10
java ×3
soa ×3
mule ×2
servicebus ×2
apache-camel ×1
api ×1
api-design ×1
apigee ×1
architecture ×1
bpmn ×1
business-process-management ×1
eai ×1
jbi ×1
jbpm ×1
mashery ×1
open-source ×1
php ×1
rest ×1
spring ×1
wso2 ×1
wso2esb ×1