发帖  主题  评论  推荐  标签 用户 查搜   用户 密码 自动 注册  
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

SOA专题

基于Spring集成的EDA

原作者 nereuschen

  基于Spring Integration集成包进行改造为EDA的开源项目

开源项目
1. Apache Camel
2. Apache Spring Integration
本项目的目标
1.基于Spring Integrationcore包进行改造
2.轻量级化(NoSpringless-3rd.jar)
3.添加新特性
项目地址
https://github.com/nereuschen/eda-components

EDA(Event Driven-Architecture)的优势

eda

两种消息模型:队列Queue的点对点1:1和Topic主题的1:N

queue/topic

这两种类型的核心API如下:

MessageChannel
method
implement
PollableChannel
send()
receive()
QueueChannel
SubscribableChannel
send()
subscribe()
unsubscribe()
DirectChannel
ExecutorChannel
PublishSubscribeChannel

对于Topic的SubscribableChannel有三个之类实现,DirectChannel ExecutorChannel PublishSubscribeChannel,这三个不同之处如下:

选择不同类型channel需要考虑的因素:事务 消息模型 消息缓冲区,堵塞等等。

实例代码如下:

发送消息

QueueChannel queueChannel = new QueueChannel();
// register the queueChannel
ChannelRegistry.registerMessageChannel(channelName,queueChannel);
// build a new message
Message<String> message = MessageBuilder.withPayload("this is a message")
                                                                 .setHeader("headerA", "headerValue").build();
// send a message to the queueChannel
queueChannel.send(message);

接收消息:

// lookup the queueChannl,may be an empty channel before the registried
QueueChannel queueChannel = ChannelRegistry.lookupQueueChannel(channelName);
// blocking until there is a message
Message message = queueChannel.receive();
System.out.println("Received message : " + message.toString());

SOA之企业应用集成EAI

SOA案例项目源码

Spring专辑

EDA专辑

解道移动版 | 关注解道 | 联系解道 | 关于解道 | 广告联系 | 网站地图 | 设为首页

沪ICP证12033263 如有意见请与我们联系 Powered by JdonFramework
返回顶部