阅读更多

2顶
0踩

Web前端

转载新闻 关于Node.js的一丝感悟!

2014-09-16 14:16 by 见习编辑 u012797015 评论(4) 有7956人浏览

首先本文的目的不是引发语言之争,纯属个人的一些思绪记录。

 

因为工作原因,用Node.js做过几个项目,基本都是涉及REST方面的。有一个涉及消息转发的服务,分别部署到6台服务器,目前已经成功处理数亿的消息,没有发生消息丢失,总体运行稳定,说明Node用在产线环境是能经受考验的。

 

今年Node社区发生了一件大事,那就是Express作者TJ大神转投Go的怀抱,理由是大神要做云端程序开发。作为悲催的偏后端码农,开始怀疑Node在后端的表现,有了以下偏见:

  1. Node是运行在V8之上的,虽然有的模块已经被改良,但基因没变,而V8是为桌面浏览器设计的,服务端毕竟要求会苛刻一些。
  2. Node作为Javascript运行环境,而Javascript的发展受限于ECMA规范,ECMA规范可能是双刃剑。
  3. 总感觉event loop比较脆弱, 可以充分利用IO, 但无法执行CPU密集性工作,多核运行需要require cluster,一直觉得这种做法有点山寨。
  4. Callback层次的问题,可以用async等库进行改善,但还是觉得山寨。业务逻辑在回调机制下支离破碎,凡人难以理解。
  5. 生态的问题,Javascript由于门槛低,github各种node库相当泛滥,质量参差不齐,好在有源代码,踩坑了再回来填坑。
  6.  一些第三方库或为了追求性能,或为了突破限制,需要结合Node源码进行编译,总觉得不够环保。特别是产线服务器不能访问外网的情况下,就要抓狂了。
  7. 我自己Javascript水平不怎么样,也就认为弱类型语言可维护性不如强类型语言,单元测试可以保证正确性,但难以重构。

基于以上莫须有的理由,我不知道Node 1.0以后的路会怎么走? 往哪方面走?还能走多远? 目前1.0已经有些难产…

 

建议:暂时不要将Node用于核心业务, 虽然paypal宣称已经这样干了。充分利用Node的优势,做和前端交互性的工作,并且是在规模不大的时候。如果把后端系统想象成一个鸡蛋的话,那蛋黄就不要用Node来做,一家之言。

2
0
评论 共 4 条 请登录后发表评论
4 楼 tangduDream 2014-09-20 14:14
做过一个项目。还行吧。容易上手。。。相比之下,比较期待GOLANG
3 楼 lj_gzy2014 2014-09-18 19:59
真短!!!
2 楼 white_crucifix 2014-09-16 15:23
想起目前github上的项目统计,js以156,118 高居榜首,超过第二名python 87,411近一倍,的确有各种node库相当泛滥的原因。。。

不过想想 jquery 和nodejs真是两翼齐飞。。。
1 楼 white_crucifix 2014-09-16 15:15
说的挺对的,像when这样的同步工具,虽然解决了原生的神嵌套,但是也加入了本不该出现的代码复杂

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • ActiveMQ配置 连接activemq

    为此,ActiveMQ提供一种连接机制,这种连接机制使用传输连接器(transport connector)实现客户端与代理(client-to-broker)之间的通信;使用网络连接器(network connector)实现代理与代理之间的通信.代理可以简单的看...

  • 第四章 ActiveMQ连接(Connector)配置 笔记

    概述:broker(代理商)之间传递消息,以及broker和客户端传递消息,需要各种协议,也就是连接方式,本章就是涉及连接方式 本章涉及: ConnectorURIs(URI统一资源标识符),标识代理商地址Transport ...

  • 第四章:连接到ActiveMQ

    第四章:连接到ActiveMQ ActiveMQ的主要作用就是向客户应用程序提供面向消息通信的架构。...ActiveMQ允许客户端的应用程序使用多种协议连接到代理,并且代理之间可以创建复杂的连接通道。 这一章中将解释下面的连接

  • 消息中间件ActiveMQ使用详解

    4.Connections查看连接数页面 六、简单使用 引入jar包: org.apache.activemq activemq-core 5.7.0 1.点对点(P2P)模型 ​ 点对点模型,采用的是队列(Queue)作为消息载体。在该模式中,一条消息只能被一个消费者消费...

  • 配置标准ActiveMQ组件--连接到ActiveMQ

    使用ActiveMQ看起来很简单直接:启动它,发送消息,接收消息。但是你没有看到隐藏在这些步骤后面的细节。理解这些细节和自定义配置需要更多的例子来说明。虽然ActiveMQ提供了大量的配置选项,但是理解一些核心的选项...

  • ActiveMQ使用详解

    ActiveMQ使用详解 一、消息中间件的介绍 介绍 ​ 消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流,并基于 数据通信 来进行分布式系统的集成。 特点(作用) 应用解耦 异步通信 流量削峰 ...

  • ActiveMQ知识概括

    ActiveMQ知识概括ActiveMQ简介Java实现ActiveMQJMS规范与落地ActiveMQ的brokerSpring,SpringBoot整合ActiveMQActiveMQ的传输协议ActiveMQ的消息存储和持久化ActiveMQ多节点集群高级特性 ActiveMQ简介 ActiveMQ安装...

  • activemq 连接方式

    ActiveMQ的主要作用就是向客户应用程序提供面向消息通信的架构。...ActiveMQ允许客户端的应用程序使用多种协议连接到代理,并且代理之间可以创建复杂的连接通道。 这一章中将解释下面的连接概念: 1.

  • ActiveMQ

    Activemq 消息发送producer 消息消费consumer 1.JMS 是 Java 的一套 API 标准,Activemq遵从JMS标准的消息队列,作用:异步、解耦(注册、发邮件)、流量削峰过载保护(大量请求服务处理不过来可能造成宕机,将消息...

  • ActiveMQ死信产生的原因及使用方案

    DLQ-死信队列(Dead Letter Queue)用来保存处理失败或者过期的消息。 出现以下情况时,消息会被redelivered A transacted session is used and rollback() is called(使用一个事务session,并且调用了rollback()...

  • 消息中间件--ActiveMq的使用教程

    资料笔记来源 尚硅谷ActiveMq , 下载地址 1. 前言 Mq能够做到的事情有 解耦 、削峰 、异步 要做到系统接口,当新模块接入进来的时候,原来的代码改动最小(解耦) 设置流量缓冲池,可以让后端系统按照自身的吞吐...

  • ActiveMQ入门到吃透(含源码解析)

    2、MQ的使用场景 1)异步处理请求。 对于不需要实时响应的请求,可以将消息发送到MQ上,等待消费者在有处理能力的时候再对MQ上的请求进行处理,而不需要实时返回,对于突然暴增的请求或者大量的请求,可以全部堵塞...

  • activemq使用详解

    消息中间件ActiveMQ使用详解 </h1> <div class="clear"></div> <div class="postBody"> 消息中间件ActiveMQ使用详解 一、消息中间件的介绍 介绍 ​...

  • MQ之ActiveMQ

    简简单单学习activemq

  • ActiveMQ 简介、安装、与 Maven 项目基本使用

    ActiveMQ 基本使用 ActiveMQ 简介 1、ActiveMQ 是 Apache 推出的一款开源免费的,完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现的消息中间件(Message Oriented Middleware,MOM) 2、ActiveMQ 最主要的...

  • 532、ActiveMQ详细入门教程系列 -【ActiveMQ(二)】 2022.05.21

    目录1、JMS的消息格式2、消息可靠性机制2.1 优先级2.2 消息过期2.3 临时目的地3、什么是ActiveMQ3.1 存储方式3.2 协议4、案例(Hello World)4.1 安装启动4.2 web控制台4.3 web控制台4.4 开发5、总结6、参考链接 ...

  • activemq

    连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory。 如一下代码: @Bean public ActiveMQConnectionFactory connectionFactory() { return new ActiveMQConnectionFactory...

  • 十七、消息中间件ActiveMQ

    访问不到的坑: 1 可能是你的linux 和 windows 没有在一个网关下 2 可能你windows 的防火墙或者 linux 的防火墙没有关掉(是的,先得关掉防火墙) 3 你忘记启动activemq 的服务了 4 你启动失败了,可能是你得java ...

  • ActiveMQ简介及实例

    一、ActiveMQ简介  ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用...

  • tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl

    tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl

Global site tag (gtag.js) - Google Analytics