nodejs不是编写服务器端的语言嘛? 也就是说可以当成后台了吗? 如果是java做后台nodejs做前台两者将如何交互啊? 谢谢
node做‘前台’?java后台? 若是‘node处理请求,java负责业务逻辑’
- 重量级的可以用thrift,它现在已经支持nodejs了
- 轻量级的,比如通过http请求就可以实现交互了
你这个不知道具体场景是?
@shinka 说的是这个吧: http://www.infoq.com/cn/news/2012/04/interview-xueqiu-using-nodejs , 如文中所述:
- 前端:负责所有和用户有交互的产品,包括 WEB以及手机客户端
- 后端:负责各种业务 API 的开发,以及服务器端其他系统的开发
- 架构:负责设计实现关键系统的架构,服务器维护以及开发过程管理,团队建设
他们的前端,指的是web服务+页面渲染那层,用nodejs, 而业务逻辑用的是java. nodejs处理用户请求,然后通过api(rest/webservice)等方式调用java的业务逻辑.
我也是看到了雪球网的这篇文章。我想了解的是,他们前后台交互的时候,是否要起2个应用,tomcat下一个应用,node.js起另外一个应用,然后交互更多是靠JSON/XML?如果是这样,那么session之类的岂不是用不了了?@atian25 @sumory @linmomo02 还望各位帮忙解惑,谢谢!
@jsnjlc 雪球网我不太清楚是怎么做的,但是让nodejs和java之间通讯还是有很多手段的
- 比如通过http(传递的数据格式可以随便定义,可以是text,json,xml,流等等,根本上还是http协议)
- 其它方式的话如上面提到的webservice,不过我一直对这个玩意儿不感冒
起服务的话肯定得两个了,java一个,nodejs自己的一个,至于是不是分布在不同机器还得看场景。
@sumory 谢谢你的回答哦。主要我们现在的产品很复杂,包含了4个跨域应用的单点登录,还有用户的角色信息等等都是放在缓存或者session中的,我现在也只是尝试用node.js来让前后台的分工更加的彻底,我很担心贸然使用node.js替换现在的解决方案会出问题。
@sumory 汗,2点还没休息啊。确实不熟悉,所以现在努力在学习中,呵呵。不会轻易上的了。毕竟比较危险。哎,我们复杂的业务逻辑~~昨天看到一位仁兄做的五子棋,貌似其是用socket.io做的,其后台和前端的对接用的是websocket,java和node.js数据交互也应该可以用吧。
java 能做的,NodeJS 理论上也都可以做到。
目前 NodeJS 主要和 java 的差距就在于主流数据库的连接能力,比如说 oracle, db2。
但是主流数据的存储过程能力都非常强,完全可以封装业务逻辑。
最后只要 NodeJS 能够调用好数据库中的存储过程,那么业务逻辑就连接上了。
请参考 https://github.com/kaven276/psp.web
如果真要使用 java 实现业务逻辑,最终还要通过 jdbc 或 or-mapping 落实到数据库上来,所以说 java 其实是鸡肋。
等 NodeJS 更加成熟完善起来后,java 就是多此一举了。
只能说回答的太片面了,仿佛说的是java的强大之处就只有与数据库的交互能力,呵呵,java处理业务的成熟性和一整套的完整解决方案以及强大的社区不是node想追赶就能追赶上的,毕竟java现在是实现真正大型的企业级应用的不二选择。不过node确实对小中型互联网公司比较友好,毕竟简单易上手,实现起来更加灵活快速。
@atian25 nodejs处理用户请求,然后通过api(rest/webservice)等方式调用java的业务逻辑. 假设有100个用户同时发起请求,nidejs要同时去调用java的业务逻辑,这个要怎么实现?如果用socket通信的话,难道要在nodejs上创建100个客户端socket?还是用数据库连接池那种方式?