随笔分类 -  NODEJS

摘要:gate服务器一个应用的gate服务器,一般不参与rpc调用,也就是说其配置项里可以没有port字段,仅仅有clientPort字段,它的作用是做前端的负载均衡。客户端往往首先向gate服务器发出请求,gate会给客户端分配具体的connector服务器。具体的分配策略一般是根据客户端的某一个key做hash得到connector的id,这样就可以实现各个connector服务器的负载均衡。connector服务器connector服务器接收客户端的连接请求,创建与客户端的连接,维护客户端的session信息。同时,接收客户端对后端服务器的请求,按照用户配置的路由策略,将请求路由给具体的后端服 阅读全文
posted @ 2014-01-30 19:20 zhepama 阅读(977) 评论(0) 推荐(0) 编辑
摘要:刚接触到RPC(远程过程调用),就是可以在本地调用远程机子上的程序的方法,看到一个简单的nodejs实现,用来学习RPC的原理很不错:nodejs light_rpc使用示例://服务端var light_rpc = require('./index.js');var port = 5556;var rpc = new light_rpc({ combine: function(a, b, callback){ callback(a + b); }, multiply: function(t, cb){ cb(t*2); }}).listen(port);Sample cl.. 阅读全文
posted @ 2014-01-29 09:21 zhepama 阅读(1942) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/fjslovejhl/article/category/1544737 阅读全文
posted @ 2014-01-29 04:42 zhepama 阅读(124) 评论(0) 推荐(0) 编辑
摘要:1.首先第一次会加载master服务器.这个比较特别..他负责启动其他服务器加载master组件和monitor组件..然后执行所有组件的start..master组件有自己的ConsoleService...有自己的..MasterAgent..然后会开启该app的各个模块..并读取sever配置..使用子进程...执行其他server...可以用ssh执行远程的..和执行本地的...2.每个server都是一个独立的进程...普通的sever执行的组件和master不同..1.remote,backendSession,channel,server 和 monitor组件2.如果配置中.. 阅读全文
posted @ 2014-01-05 05:26 zhepama 阅读(380) 评论(0) 推荐(0) 编辑
摘要:在创建app的时候会初始化master和server以及log配置../** * Initialize application configuration. */module.exports.defaultConfiguration = function(app) { var args = parseArgs(process.argv); setupEnv(app, args); //设置env参数..来自进程参数 loadMaster(app);//设置master参数 loadServers(app);//设置servers 保存在 serverMap.. processAr... 阅读全文
posted @ 2014-01-05 00:08 zhepama 阅读(512) 评论(0) 推荐(0) 编辑
摘要:1.pomelo会加载lib/components目录下的组件.并设置为属性..和存储在Pomelo.components中..注意这里其实存储的是对象的构造函数.. function load() { return require('./components/' + name); } Pomelo.components.__defineGetter__(name, load); Pomelo.__defineGetter__(name, load);2.当app.start的时候..会加载默认组件:master和monitor组件 app.load(pomelo.master 阅读全文
posted @ 2014-01-05 00:04 zhepama 阅读(283) 评论(0) 推荐(0) 编辑
摘要:我们常用的实现方法可能是这样的:function Field(val){ var value = val; this.getValue =function(){ return value; }; this.setValue =function(val){ value = val; };}var field =new Field("test");field.setValue("test2")field.getValue() // return "test2" 标准的Get和Set访问器的实现:function Field... 阅读全文
posted @ 2014-01-04 21:57 zhepama 阅读(284) 评论(0) 推荐(0) 编辑
摘要:Testing inChrome 31.0.1650.63 32-bit on Windows Server 2008 R2 / 7 64-bitTestOps/secObject.definePropertyfor (var i = 0; i < 1000; i++) {obj = {};Object.defineProperty(obj, "x", {get: funct['get'],set: funct['set']})obj.x = i;acc += obj.x;}ready__defineGetter__for (var i 阅读全文
posted @ 2014-01-04 21:51 zhepama 阅读(523) 评论(0) 推荐(0) 编辑
摘要:最近想使用WebStorm来写pomelo,初次使用WebStorm,网上找了老半天根本没有介绍WebStorm如何创建或者打开运行pomelo的教程,网易pomelo官网介绍的使用 WebStorm IDE 调试 Pomelo 应用程序,对于没有WebStorm使用经验的我来说,那叫蛋疼,经过不断摸索,最终总算弄出来了,写给新手们看看。1、安装WebStorm 6.0(1)windows下就不用多说了,下载地址:http://www.jetbrains.com/webstorm/,下载一个安装程序一路next就OK,注意安装前先安装jdk(2)在linux的话,安装前也需要安装JDK[htm 阅读全文
posted @ 2014-01-04 20:35 zhepama 阅读(534) 评论(0) 推荐(0) 编辑
摘要:客户端的实现:1, 如果你正在对流进行读写,那么表示其实你己经在活跃状态,不需要发送心跳消息2, 如果你的网络是空闲的, 那么需要指定一个时间间隔(如20sec)向server发送心跳消息。所谓的心跳不过就是当网络空闲时,循环用指定的消息格式向服务器发送消息,服务器收到后也用指定的消息格式返回消息,双方确认都在线。如果你问的是后台的实现:1, 一个主机不可以一次只能响应一个client,你需要并发响应,否则client的使用就是恶梦。你可以自己写多线程来处理如何并发,书上都有实例可以抄。 但这样的效率相当低,并且你很难处理多线程间同步和死锁问题,所以Java4以后引入了NIO的机制来解决复杂的 阅读全文
posted @ 2014-01-04 04:47 zhepama 阅读(8949) 评论(0) 推荐(0) 编辑
摘要:1.安装nodejshttp://nodejs.org/download/...这个简单..2.下载pomelo..并且 安装所需要的包.未能加载visual c++组件 “VCBuild.exe“这种错误,一律用vs开发人员命令行工具运行..直接在命令行里搜索..vsxxxx$ git clone https://github.com/NetEase/pomelo.git$ cd pomelo$ npm install -g3.咳咳..这样就完成了..简单吧...确保你的机器可以上网,因为安装pomelo的过程需要从网上下载其依赖的包。确保你的系统上已经要安装了Node,目前最新的Node提 阅读全文
posted @ 2014-01-03 23:49 zhepama 阅读(501) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示