golang 实现 请求拆分,并发调度底层系统

在开发业务系统的时候,很多时候需要从底层的服务调用接口,拼接数据,或者一项请求需要若干子系统的实现,但是如果一个一个系统调用的时候,则面临请求处理时间过长超时的危险,以及不好的用户体验。这里可以通过优化设计,将其中一部分异步处理,或者说,可以通过并发同时调用的方式,及时获得子系统的响应,将线性的时间并行化。

golang最大的优点,就是可以比较轻松的实现并发,并且性能优越,与C语言同一个量级。

定义若干子模块,每个模块与一个系统交互,定义两个信道用于输入输出, 一个输入信道 input chan ,用于监听获取调度模块的输入信息,一个输出信道 ouput  []chan struct{}, 如果需要的话,用于子模块向上层回馈信息,

 

对于某个子模块来说,实现的功能很简单 监听input chan,然后信道的信息处理特定的逻辑,然后向 特定的 output chan 返回内容,如果请求流程很复杂耗时,则可以进一步派生goroutine进程加速响应。

Leave a comment

Your email address will not be published.

*