1) 直接查询数据库。(不使用)
2) js访问,jsonp跨域
3) 前端系统的后台(java)调用后台接口(类似httpclient直接访问,模拟一个http请求)。
4) WebService方式访问 Apache CXF 它的特点是异构平台互相访问,但是封装过多,性能最低。Json替代webservice
5) RabbitMQ消息队列(两个系统之间不互相通信,使用消息中间件,所有数据把放在这里,不互相依赖,公用的。spring官方支持的)
1.1.1 第一种方案:JSONP
优点:效率高,节省带宽。
缺点:不安全,JS访问的接口用户都可以看到;接口直接对公网公开。对接口的稳定性和高可用性无法控制。
1.1.2 第二种方案:通过后台访问
优点:安全性高,只对内网公开,外网是访问不到的。在代理请求中加缓存。
缺点:效率低。压力集中在前台系统的后台服务器。
效率低,可以通过缓存进行优化;压力集中,可以通过分布式服务器集群来解决。所以综合考虑,我们采用第二种方案。
1.1.3 第三种方案:直接访问数据库
在实际项目尽量不要多口访问数据库,如果超大型项目中一旦发生数据库数据混乱,无法追踪数据到底由于什么缘由混乱。线上系统由于高并发,很难在测试环境中模拟这么多用户实际操作。再者,真实数据量太大,测试环境也无法模拟这样的数据量。