求建议,怎么更好的实现网络中间件
CRKK 2015-11-24 11:55:25 楼主目前公司是做ERP系统的,目前一个项目是在阿里的钉钉里做一个微应用供我们的客户查询其报表,审核消息等功能。其中微应用实质上是一个HTML5页面(下简称微应用),客户的数据是放在各自的服务器的数据库中,由于客户很多没有固定的IP地址,因此目前提出做一个中间件放在阿里云上供微应用和客户的数据进行通信传递,整个中间件使用.net平台进行编写。
由于微应用只是发送一些HTTP请求来获取数据(目前全是GET请求),因此在中间件中使用了一个TCPListener对为应用发送的请求进行监听和解析,获取到需要向客户请求的参数和数据。中间件中还包含一个Socket服务器,客户会使用我们写的socket客户端连接socket服务器,其中客户端可以根据得到的指令去操作客户数据库并返回数据。当中间件收到微应用发送的请求时,解析到参数,然后会通过socket服务器发送信息到相应的socket客户端,等待客户端返回数据后,返回数据给微应用进行数据展示。
目前遇到的问题,中间件接收到微应用请求时,需要等待socket服务器发送出信息并返回数据以后再返回,这段时间HTTP请求会一直等待,整个过程是同步的,当很多微应用请求时,效率会非常低,请问大神有更好的结构设计吗?