camel--理解消息设计

408 阅读1分钟

1.EXCHANGES

1.exchange对象是一个压缩消息并存储消息的包装对象。
2.如果一个消息被分发到生产者节点,exchange对象会提供一个临时的插槽去持有响应(out message)。
3.exchanges支持lazy creation messages

2.MESSAGES

1.message对象由message body、message headers、message attachments组成。
2.message body,message attachments和message headers支持lazy creation。
from("sourceUrl")
.filter(header("foo").isEqualTo("bar"))
.to("targetUrl")

在filter(header("foo").isEqualTo("bar"))这一步,message header就会被解析,而message body等到最后一步to("targetUrl")才会被解析。

3.BUILT-IN TYPE CONVERTERS

camel内置了许多转换器,你也可用使用marshal()和unmarshal()来实现类型转换。

4.BUILT-IN UUID GEMERATORS

id生成器你可用自定义一个然后放入camelContext中,任何需要生成id的地方都会调用这个id生成器方法。

public interface UuidGenerator{
    String generateUuid();
}

getContext().setUuidGenerator(new SimpleUuidGenerator())