ESB异步处理方式2

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

    于是调整了下架构



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

猜你喜欢

转载自zouruixin.iteye.com/blog/2076426