Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • 大并发服务

    post by onelong / 2016-10-14 5:31 Friday [工作]

    App----->DAL(队列+连接池)--->DB

    主要的业务逻辑挪到应用服务器处理,数据库只做辅助的业务逻辑

    App----->Cache(一致性+超时)---->DAL(队列+连接池)--->DB

     

    Cache很多问题需要处理,如何更新,如何一致性,如何处理事务。

    1、时间超时,重新查询

    2app直接操作DAL,然后通知Cache更新

     

    缓存大小控制

    1FIFO

    2LRU

     

    NoSql:

    redis , memcached

     

    DB

    1、负载均衡+读写分离(主从),主要是写操作阻塞了读操作,大量删除容易卡死,最好多次小删或伪删,delete 10 sleep 1s

     

     

    app服务器发展有瓶颈时:

    1、任务服务器(负载均衡+服务器监控)---->App(微服务化)----->DAL(队列+连接池)--->DB

          监控指标:cpu,内存,并发,内存换页

    2MQ<-----App(微服务化)----->DAL(队列+连接池)--->DB

     

    DB再遇瓶颈:

    1、分库(水平切分,垂直切分,常用水平切分)

    2、分表

     

    服务器性能杀手

    1、拷贝数据(缓存解决)

    2、缓解切换(线程问题)

    3、内存分配

    4、锁竞争

          

    优化:

    1、客户端缓存

    2ESI缓存

    3、前端缓存

    4、数据库缓存

    5、方法缓存

    6、操作缓存

     

    数据中心:SqlNoSql结合,DFSKV-DB,Map/Reduce

    高一致性:关系型数据库,事务操作

    低一致性:NoSql,高并发

     

    内核线程和pthread是一对一,pthreadjvm线程是一对一

    现在主流的JVM无一使用引用计数方式来实现Java对象的自动内存管理。

     

    前后端分离

     

    后端---json api

    前端---ajax+nginxnode (反向代理),cors,跨域问题----前端渲染,缺点很明显,SEO不友好,移动浏览器性能差

     

    node 开发调试:

    WebSocket im

    反向代理(性能差),调试ajax

    react navite 服务端

    webpack+react+nodejs 服务端渲染 

    webpack+gulp+nodejs 

     

    基于dom

    angularjs 1x

    VUE

     

    Vue2Angular2等框架都提供了服务器端渲染

    vue2.0 + webpack + koa2

     

    优化:

     

    BigPipehttp编码chunked

    引用地址:
     

    我要评论