-
缓存分布式算法优化 改进哈希算法: 首先对机器的IP做虚拟化,虚拟成n台的时候加尾号#1, #2,..., #n 将加了尾号以后的虚拟IP取模进行升序排列 对数据计算哈希值以后通过所在区将数据存储在区间左端的机器上 扩容新插入的结点只影响左边相邻结点,大部分结点和数据不受影响 结果:失效比例大幅下降,扩容机器越多失效比例越低查看全部
-
缓存分布式算法优化 哈希取模:机器扩容或缩减时很多数据会失效,这部分数据需要到数据库上去重查,短时间造成查询压力从缓存传导到数据库,造成性能不稳定查看全部
-
Node.js发布: 先把代码Ars发布上去,然后再重启,重启的过程中有性能抖动: 1.进程重启时需要关闭原来的进程,生成新的进程,有部分请求没有被很好的处理 关闭老进程的时候没有处理完的请求被丢失 关闭老进程和启动新进程之间的时间间隔有请求没有被接收 改进: Ars系统发布完新代码给Master进程发一个信号:我要重启了,我有新代码要发布了 Master进程fork一些新进程加载新的代码 新进程ready后新进来的请求发到新进程上处理 老进程处理完手头上的请求后关闭 结果:没有性能抖动查看全部
-
Node.js进程控制优化 Node.js的cluster进程任务分配不均衡 自己动手: Ars系统:发布系统 发布的时候只启动一个Master进程监听端口 Master进程fork很多Worker子进程处理请求 Master每次收到请求通过进程间的消息把收到的请求的socket交给子进程 子进程处理并把数据返回给请求的终端 Master给子进程分配的方式: 按照一个队列从头到尾循环反复,从而保证任务在每个子进程上分配的概率是一样的 Node.js新版本已经提供了这种轮询的方式查看全部
-
Memcached缓存 1.Node.js组件间共享session 2.缓存多读少写的数据 性能提升:20%~30查看全部
-
MySQL master-slave架构 海量数据怎么存:分表分库,横向扩展 问题:数据的迁移,例如加机器时 引入:单master多个slave架构提升系统横向扩展性 master通过binlog把数据修改同步到slave master做写操作,slaves做读操作,实现读写分离 前提:多读少写 容灾: slave出问题:踢出队列 master出问题:把master换成某一台slave 主辅业务分离: 例如每天晚上结算某人今天买了多少东西: 离线进行,实时性要求不高,用线上不用的独立slave进行,保证不会对主业务造成影响 跨机房部署改进容灾: 用master-slave架构做多地部署 例如广州master,上海slave查看全部
-
NGINX作为接入的用处: 1.动静态页面分离 2.域名收归: Node.js组件独立开发、解耦,通过域名来绑定 否则域名太多解析太多,在移动终端上成本高 因此通过路径来区分 NGINX根据请求的路径分发给不同的Node,js组件 这样Node.js组件的实现、开发、部署、维护都是独立的 区别只是在NGINX上做不同的路由配置 3.灰度发布 例如: 新版本,新功能只发布到其中的一台机器上面 其他机器还是老的代码 只需要在NGINX上做配置,例如: 根据IP末尾是0的代理到老的机器 非0的代理到新的机器 4.通用能力 例如: HTTPS协议的支持:NGINX做一些简单的配置就可以实现 NGINX与Node.js之间还是走HTTP,因为是在内网做的传输,已经可以确保用户通信数据的安全查看全部
-
Node.js full stack框架模型 1.接入层: TGW: 腾讯的标准接入 TNGINX: 腾讯版的NGINX作为二次接入 2.逻辑层: 通过Node.js的组件实现: 实现主要业务逻辑 调用基础平台、关联平台接口 数据库、缓存的访问 3.存储层: MySQL: 数据库存储 Memcached: 数据的缓存以及session的管理 前端: CDN: 静态资源的部署 首页采用一些植出 其他数据异步请求、异步绘制查看全部
-
尽量让代码远离深层闭包嵌套: Async模块减少闭包嵌套 闭包代码独立成函数减少嵌套查看全部
-
如何选择Nodes.js模块,克服选择困难症查看全部
-
PHP与Node.js的工作模型对比查看全部
-
性能:实现密集型计算的时候最好用Node.js的C++扩展查看全部
-
为何选择Node.js查看全部
-
微信朋友圈传播经验 1.第一印象很重要,内容或形式一定要优质 2.用户只访问一次,快餐式阅读 3.寻找可能的爆点,让用户在关闭前愉快地分享查看全部
-
数说·GEAR HTML5 移动端数据可视化开发组件 以趋势报告技术实现为例查看全部
举报
0/150
提交
取消