请问用java做后台用nodejs做前台是什么意思?
发布于 3年前 作者 shinka 11606 次浏览

nodejs不是编写服务器端的语言嘛? 也就是说可以当成后台了吗? 如果是java做后台nodejs做前台两者将如何交互啊? 谢谢

22 回复

node做‘前台’?java后台? 若是‘node处理请求,java负责业务逻辑’

  • 重量级的可以用thrift,它现在已经支持nodejs了
  • 轻量级的,比如通过http请求就可以实现交互了

你这个不知道具体场景是?

我看到论坛上发的一篇文章 关于雪球团队的 其中提到java后台nodejs前台的说法了 于是乎不知道是怎么一个架构了…

@shinka 说的是这个吧: http://www.infoq.com/cn/news/2012/04/interview-xueqiu-using-nodejs , 如文中所述:

  • 前端:负责所有和用户有交互的产品,包括 WEB以及手机客户端
  • 后端:负责各种业务 API 的开发,以及服务器端其他系统的开发
  • 架构:负责设计实现关键系统的架构,服务器维护以及开发过程管理,团队建设

他们的前端,指的是web服务+页面渲染那层,用nodejs, 而业务逻辑用的是java. nodejs处理用户请求,然后通过api(rest/webservice)等方式调用java的业务逻辑.

nodejs做前端从某种层面上来说有用来取代ngix的作用。

@atian25 哦 这样啊 谢谢指导 大概懂了

恩恩 是的

我也是看到了雪球网的这篇文章。我想了解的是,他们前后台交互的时候,是否要起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替换现在的解决方案会出问题。

@jsnjlc 如果不熟悉不建议在生产环境中直接使用,不出问题罢了,出了问题解决不了那就麻烦大了,尤其是线上跑的系统。

@sumory 汗,2点还没休息啊。确实不熟悉,所以现在努力在学习中,呵呵。不会轻易上的了。毕竟比较危险。哎,我们复杂的业务逻辑~~昨天看到一位仁兄做的五子棋,貌似其是用socket.io做的,其后台和前端的对接用的是websocket,java和node.js数据交互也应该可以用吧。

@jsnjlc 可以啊,JavaEE7 可以支持websocket,tomcat7.0.27也支持websocket协议了

java 能做的,NodeJS 理论上也都可以做到。

目前 NodeJS 主要和 java 的差距就在于主流数据库的连接能力,比如说 oracle, db2。

但是主流数据的存储过程能力都非常强,完全可以封装业务逻辑。

最后只要 NodeJS 能够调用好数据库中的存储过程,那么业务逻辑就连接上了。

请参考 https://github.com/kaven276/psp.web

如果真要使用 java 实现业务逻辑,最终还要通过 jdbc 或 or-mapping 落实到数据库上来,所以说 java 其实是鸡肋。

等 NodeJS 更加成熟完善起来后,java 就是多此一举了。

哇 科普了 谢啦

…太片面了吧

session集中管理,可以用缓存实现,实现成分布树,脱离http服务的管理!

只能说回答的太片面了,仿佛说的是java的强大之处就只有与数据库的交互能力,呵呵,java处理业务的成熟性和一整套的完整解决方案以及强大的社区不是node想追赶就能追赶上的,毕竟java现在是实现真正大型的企业级应用的不二选择。不过node确实对小中型互联网公司比较友好,毕竟简单易上手,实现起来更加灵活快速。

@atian25 nodejs处理用户请求,然后通过api(rest/webservice)等方式调用java的业务逻辑. 假设有100个用户同时发起请求,nidejs要同时去调用java的业务逻辑,这个要怎么实现?如果用socket通信的话,难道要在nodejs上创建100个客户端socket?还是用数据库连接池那种方式?

php当时也是这么说的。 python何尝不是。 ruby还有ror呢。 nodejs主要竞争对手应该是php,个人感觉。wordpress很好的标的,可以做一个nodejs版本。 不过就性能来说nodejs跟php都有距离 不要说跟java比了。

nodejs就是适合做服务,你那样作就没意思了。

我也遇到了同样的困难。 请问,最终的解决方案是?

回到顶部