ESB异步处理方式2

上篇文章解决的是同步处理请求中,服务处理过久造成客户端调用超时的问题。但是当某个请求访问过于频繁造成核心服务压力过大时,异步调用并不能解决这样的性能问题。

于是调整了下架构
[img]http://dl2.iteye.com/upload/attachment/0097/8210/aeb7535a-1c7e-394a-864a-c2980a730e80.bmp[/img]


1.客户端请求ESB
2.ESB将请求消息转化后发送到消息队列等待concumer braker获取
3.concumer braker实现ApplicationContextAware接口,在启动后队列没有消息时阻塞,如队列产生消息,获取消息并根据SERVICEID从线程池启动线程,对消息进行路由转发,将服务调用后产生的结果存入responseQueue(注意,该)
4.result concumer braker发现responseQueue队列中存在结果消息,并获取,从线程池启动线程并主动调用客户端回调接口。
5.客户端回调接口处理结果

你可能感兴趣的:(企业中间件)