架构示意图:
整体类似于SOAP
核心数据服务,由DB IO Service担任,基于JFinal框架,主要有两个工作:
1、数据库端,维护连接池,并利用JFinal的ARP对各数据库进行操作
2、输出端,开放主要的Controller,用于对DB的各种CURD操作,同时对数据进行缓存处理
至于各项目,只需通过JAR包方式引用DB插件,即可通过插件中封装的HttpClient方法与DB Service进行通信,完成数据交换。
上面说的各项目,其实就是模块,只是这样一来,就可以实现有针对性的单独部署
整体思路还是很明确的,下面是几个担心:
1、各项目中,底层是通过HttpClient解析服务端的JSON来获取数据的,这种方式的运行效率是否理想,心里没底
2、如果项目中的并发数据需求量较大,HttpClient能否应付过来
3、相比直接与DB Server通信,这种方式增加了网络层面(HTTP)的开销,对速度肯定会有所影响,能否超出忍耐范围
这种模式是我需要的,目前还停留在前期的分析阶段
不清楚是否可行,提交到这里,也是想得到波总以及各位朋友的指点
淘宝、新浪都是这么做的,当并发需求很大时,先是多实例部署,然后加一个负载均衡来分发请求到不同的实例,这就属于集群的范畴
当集群的性能还满足不了需求时,再将大项目拆分成小项目,这就属于分布式的范畴,然后分布式中的热点小项目再多实例部署,这就属于 分布式 + 集群 混合的范畴