哈喽!大家好 又来到了··· 跑错片场了,啊哈 大家好 我就是你们喜欢了加讨厌日久就生情的布莱恩·奥复托杰森张;
话说:“基础打多深 楼就能建多高”; 一阵春风吹的哦是精神百倍,忽然一想天天吹牛b node怎么好,咱们搞搞他得墙角吧!搞搞再补上才说明技术水准嘛; nodejs劣势and解决方案(solution);记得上学时候我在这个词上边写着 “色lu神” 现在一想好生怪异;
1,node 天生的异步操作优势弊端,内存要求,毕竟它喊一嗓子大家一起干活空间不能太小哇,解决方法很粗暴 扩容 加钱买硬件嘛!庆幸这个资本还是很便宜滴,而且随着硬件发展会越来越便宜。
2,默认不支持多核,我们伟大的开发者们已经搞定了解决方案 cluster 可以解决;
3,默认不支持服务器集群,现在用node-http-proxy 可以解决;
(node-http-proxy是一个用于Node.js的HTTP可编程代理库,支持 websockets。它是适用于实现例如代理服务器和负载均衡这样的组件)
4,负载均衡方面 静态由nginx处理 , 动态由nodejs处理;
5,灾难恢复 比较成熟的forever(永远;不断地 听着就专业)或者node-cluster;
框架方面呢
比较热门: express,koa,hapi,以及express基础之上的sails;
express:相比之下 完善,稳定,文档全,社区大,
koa:超前, 潮流, 666
hapi:复杂,大型程序 比较牛叉 so 不适合初学者;
来咱们先搞搞十万个啥东西 come on,cope some knowleage(no雷之 - 知识) 这个注解我自己都深深折服了!
1、什么是集群
集群(cluster)就是一组计算机,他们作为整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意的增加和删除集群系统的节点。
2、集群的优点
<1>高扩展性
<2>高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以防止单点失效
<3>高性能:负载平衡集群允许系统同时接入更多的用户
<4>高性能价比:可以采用廉价的复合工业标准的硬件来构造高性能的系统。
3、集群系统的分类
虽然,根据集群系统的不同特征可以有多种分类方法,但是一般把集群系统分为两类:
<1>高可用性(High Availability)集群,简称HA集群。
这类集群致力于提供高度可靠的服务。就是利用集群系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。
负载均衡集群:使任务可以在集群中尽可能平均的分摊不同计算机处理,充分利用集群的处理能力,提高对任务的处理效率。在实际应用中这几种集群类型可能混合使用,以提供更高稳定的服务,如在一个使用网络流量负载均衡的集群中,就会包含高可用的网络文件系统、高可用的网络服务。
<3>性能计算(High Perfervidmance Computing)集群,简称HPC集群,也称为计算集群。
在这种集群运行的是专门开发的并行应用程序,它可以把一个问题的数据分不到多台计算机上,利用这些计算机的共同资源来完成任务,从而可以解决单机不能胜任的工作(如果问题规模太大,单机计算速度太慢)。
这类集群致力于提供了单个计算机所不能提供的强大的计算能力。如天气预报、石油勘探与油藏模拟、分子模拟、生物计算等。
4、什么是高可用性(HA)
计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常采用平均无故障时间(MTTF)来度量系统的可靠性,用平均时间(MTTR)来度量系统的可维护性。于是可用性定义为:MTTF/(MTTF+MTTR)*100%
5、负载均衡服务器的高可用性
为了屏蔽负载均衡服务器失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,他就释放IP地址,这样的主管理器就开开始再次进行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步和备份,保持两者系统的基本一致。
6、HA的容错备援运作过程
自动侦测(Auto-Detect)阶段 由主机上的软件通过冗余侦测线,经由复杂的侦听程序。逻辑判断,互相侦测对方运行情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据引擎以及其他应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错我的判断,可设定安全侦测时间、包括侦测时间间隔、侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。
自动切换(Auto-Switch)阶段 某一主机如果确认对方故障,则正常主机继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序以及服务。
自动恢复(Auto-Recovery)阶段 在正常主机代替故障机工作后,故障机可离线进行修复工作。在故障主机修复后,通过冗余通讯线与原来主机连线,自动切换回修复完成的主机上。整个回复过程完成有EDI-HA自动完成,亦可依靠预先配置,选择回复动作为半自动或不回复。
7、HA三种工作方式
<1>主从方式(非对称方式)
工作原理:主机工作,备机处于监控状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。
<2>双机双工方式(互备互援)
工作原理:两台主机同时运行各自的服务工作且互相检测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。
<3>集群工作方式(多服务器互备方式)
工作原理:多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。
洒家又睡着了,这都是什么鬼,我还是用通风所以懂得语言描述一下,啥子东西是集群 就是买了一堆服务器 这就是一个集群,想了一想买一堆那得多少钱啊··· 厂家有解决办法 阿里说我有钱 我买租给你们,老百姓解释 一群服务器就是他们说的那个 那啥; 高可用是啥? 分开 读嘛 性能高啊 可用呢 天天都能用 我靠 太残忍了; 天天让人家干活指定累啊 有的机器就热了 不干活了 so 就出现三种 工作方式,1 主从 就是一个机器干活 后面有一个后备队员; 主演病了替身上主演好了替身下来 就ok;第二种 两个人一人负责一部分 主演表演替身演挨打部分,主演病了 替身就全演 病好了 俩人一起工作 所为你中有我 我中有你 日久生情 呃呃··· 第三种情况就是多人演一个角色 剧本大家都知道 两个都病了 我还有替身 哎!大白话讲的 呕吐。。。 那些高大上的东西到我这里一讲完全成粪土啊··· 计算机届的祸害··
说着说着教程也就到了 node安装 没啥讲的 要是装不上;那就不用学了 尤其windows上 跟安qq一个样;还不会就上这个网址瞅瞅 http://www.runoob.com/nodejs/nodejs-install-setup.html;
说一个小技巧,反正我之前不知道打开node 各种cd 复制地址;或者直接放d盘里面;想在想一想 确实 是个好办法。。。
按住Shift按右键 就有这个选项; 之前俺是各种cd 太愚蠢了;
node 里面有一个很实用的工具 执行node就不用 node ** node ** node ** 写程序改一点东西就执行 太麻烦了;supervisor 这个东西 你更改什么他都帮你刷新重启node; 缺点就是 你写程序报错了 他就一直报错 必须关闭或者马上改对了;
这么下载? 你装完node就有npm 版本不够新旧升级 一行命令; 分享几个常用的吧 省的来回找 麻烦、
npm -v #显示版本,检查npm 是否正确安装
npm install express #安装express模块 npm install -g express #全局安装express模块 npm list #列出已安装模块 npm show express #显示模块详情 npm update #升级当前目录下的项目的所有模块 npm update express #升级当前目录下的项目的指定模块 npm update -g express #升级全局安装的express模块 npm uninstall express #删除指定的模块 一个简单的服务器;很简单;服务运行在本季8888端口 就是localhost:8888 ;var http = require('http'); http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // 发送响应数据 "Hello World" response.end('Hello World\n'); }).listen(8888); // 终端打印如下信息 console.log('Server running at http://127.0.0.1:8888/');
- 第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。
- 接下来我们调用 http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。
访问有个地址, 后台给你数据,一个简单小模拟就结束了;后期有了框架支持 就好比 js有了jq一毛一样;写起来更简单;我也将抛弃之前的实验 ,一步一步再来一遍!
feet on the ground; 脚踏实地;脚踏在坚实的土地上。比喻做事踏实,认真。学习做事 不浮夸;不沾沾自喜;浮躁只是不成熟的表现!