Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了缩放node.js大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我对大规模的服务器端开发相当新。我想使用node.js编写一个服务器,但在我开始前,我想知道一般的原则是什么扩展节点,每秒20个查询

我写的服务将主要是一个数据库的接口,以及输入数据的验证和验证。

解决方法

负载均衡

最可能的最简单的网站,你不需要任何缩放。只有一个盒子会让你盖。之后,你应该做负载平衡,像你提到的是几乎相同的每个架构(例如你说你可以先启动多个节点进程,但是当你变得很大,你需要更多的盒子)。

Nginx load balancing example

http {
  upstream myproject {
    server 127.0.0.1:8000 weight=3;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;    
    server 127.0.0.1:8003;
  }

  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://myproject;
    }
  }
}

Redis

没有汗水node.js。您应该使用redis作为数据存储,因为它是疯狂的快:)。当你使用node_redis时,甚至有一个c库的节点。

npm install hiredis redis

Hiredis是什么给你kickass性能,因为它编译到节点内的C代码。这里有一些基准redis当与hiredis使用。

PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287

当你看看那些数字,那么20 / s是NOTHING :)。

验证

更新:

> everyauth
> openid

我告诉这很多,但对于上帝的爱,请不要尝试实现自己的身份验证系统。这可能是不安全的(很多可能出错),很多工作。对于身份验证,您应该使用facebook-connect,twitter单点登录等,使用优秀的connect-auth库。然后你被覆盖安全,因为他们有专家测试登录系统的漏洞,也不通过纯文本传输密码,但感谢上帝使用https。我也为一个想要使用facebook-connect用户回答了一个主题

验证输入数据

要验证输入,您可以使用node-validator

var check = require('validator').check,sanitize = require('validator').sanitize

//Validate
check('test@email.com').len(6,64).isEmail();       //Methods are chainable
check('abc').isInt();                               //Throws 'Invalid integer'
check('abc','Please enter a number').isInt();      //Throws 'Please enter a number'
check('abcdefghijklmnopzrtsuvqxyz').is(/^[a-z]+$/);

//Sanitize / Filter
var int = sanitize('0123').toInt();                  //123
var bool = sanitize('true').toBoolean();             //true
var str = sanitize(' \s\t\r hello \n').trim();      //'hello'
var str = sanitize('aaaaaaaaab').ltrim('a');        //'b'
var str = sanitize(large_input_str).xss();
var str = sanitize('&lt;a&gt;').entityDecode();     //'<a>'

还有这个forms库,以帮助您创建表单。

大佬总结

以上是大佬教程为你收集整理的缩放node.js全部内容,希望文章能够帮你解决缩放node.js所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: