纯Java网站开发改造为nodejs混合编程

本文讲述了将纯Java网站改造成使用Node.js混合编程的过程,以提高网站速度和并发能力。主要步骤包括:安装Node.js和MySQL模块,修改Java工程的Web配置以允许跨域,调整Ajax调用以访问Node.js,编写Node.js数据库调用,以及优化数据库查询。通过使用Node.js和全局变量HashTable减少数据库调用,显著提升了网站性能。
摘要由CSDN通过智能技术生成


早已对纯JAVA版的网站不满了,不管是繁重的代码编写量,和无谓的3层代码编写都让我提不起兴趣。但是提到nodejs我就有兴趣来做了,原来的网站是放到云服务器上的,由于CPU和内存的限制进一步影响了网站速度和承载量。达到什么程度呢,就是3个人同时应用就会造成访问慢或卡死。

         于是我想到nodejs将原来网站重写。将来就会加速网站和体现并发数优势。很多人反对我这样做,说nodejs不适合重逻辑的部分,但好了,89%的应用都是直接从用户获得参数直接传透到数据库,为啥要写那么多代码,什么时候运行过其他计算。偶尔也是对参数进行个加减而已。为啥不将几百行代码缩减到几行。

       既然要动手就开始,准备好nodejs,在nodejs.org官网下在nodejs1.2X 安装好之后,下在javascript编辑器,或文本都行。我喜欢用文本直接编辑。

    罗列了以下几个步骤  :

1.      安装nodejs mysql   (网上很多教程注意先安装git

2.      修改java工程文件中的web,添加跨域反问,并将跨域限制为本机

3.      修改原工程jqueryajax调用,使用访问本机127.0.0.1:1337端口访问

4.      提供nodejs直接调用数据库的调用方法

5.      修改调用返回的处理

最后就是写一个工具在原网站上进行500个轮询访问的效率查询,用以鉴定以前的效率和现在效率的差别。




这棵树就是我们需要改造的原因。原来的反问原理是,通过spring->访问controller->访问helper->访问dao->访问mysql->再依次将结果json返回页面处理。


上面就是全部步骤,其实我说错了,上面还不是整个过程。因为树是存在一张表中的。其中只有id,pried,name,leve,orderid等,所以关系都是锁在同一张表里,意味着要把所有树排列好一次拿出来是可以的。只要按默认顺序将树整个解析出来即可。但目前存在客户要求树也要按顺序列出来,也就是按order指定的顺序排列,那么一次将树拿出来解析就不可以了。


因此我采用先将根结点读数据库拿出来,在生成根结点界面的时候程序回调再去查询所有子节点,并从数据库返回结果生成整棵树。


这样本来一次调用却变成了N次调用,往返于服务器之间,登陆几个用户打开几次页面我的程序基本就慢的要死。


第一步介绍:我只介绍注意事项即可,其他的请搜索网上吧,而且都有很好的文章。安装好nodejs使用npm装载mysql模块是报错的,因为没装git,使用git后才能安装,输入以下命令


npm install felixge/node-mysql


完成安装mysql


完成之后试写mysql功能简单调用一下:


var mysql  = require('mysql');




var pool  = mysql.createPool({

  connectionLimit : 30,

  host            : 'localhost',

  user            : 'root',

  password        : xxxx

});
 
pool.query('SELECT * FROM zd.alga_cs;', function(err, rows, fields) {

  if (err) throw err;

  console.log('The solution is: ', rows);

});


       调用完成后看一下你是否能读出结果,测试成功则nodejsmysql模块都装好了。


 


       第二步:修改java原来的tomcat,因为在一个页面下以前用jqueryajax调用spring对应的controller,所以现在需要改成调用nodejs本地下的一个端口。我设置为127.0.0.1:1337下来访问我定义的nodejs代码块。


       第一就直接修改了,例如将如下:


 


$.ajax({ async:false,type:"post", url:"employee.getUnDeparment.do",data:"", dataType:"text", success:function(msg){ mydata=eval("("+msg+")"); // alert(msg); $.each(mydata,function(idx,item){ unuser = item.count; });


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值