后端强化的五种方法:
1.硬体升级换代
硬体难题对操控性的负面影响不容小视。
举两个范例:两个DB软件产业时常戊日和SQL报案,销售业务摸查下来发现SQL都很单纯,该做的检索强化也都做了。后来DBA老师帮功能定位到难题是硬体过旧导致,将机械设备硬碟转变成液态硬碟后报案立刻消亡了,效用见效!
2.内存化
内存能称的上是操控性强化的法宝,使用内存时需要考量内存胜率、内存预览、统计数据已连续性、缓存反射及暴风雪、Value极重等难题,能透过mutiGet将数次允诺分拆一场、触发器出访等形式来提高内存加载的操控性。
3.商品方法论强化
销售业务方法论强化时常会难被忽视,但效用却常常比统计资料库Listary、JVMListary等等的来的更明显。
举两个范例,12306春运期间抢车票的情景,由于出访的人多,使用者点选“下车时”后系统会十分卡,unlock十分慢,作为使用者,他们会有意识的再去点“下车时”,可能会已连续点个好几次。假定平均值两个使用者点5次,则后端系统阻抗就增加了5倍!而其中80%的允诺是数次重复允诺。这个时候他们能透过商品方法论的形式来强化,比如说,在使用者点选查阅后将“按键置灰”,或是透过JS控制xx秒根本无法根本无法递交一场允诺等,有效率的拦截了80%的合宪网络流量。
4.技术化
做技术化最基础的是按销售业务做服务项目分拆,防止跨销售业务间的相互负面影响,统计数据和服务项目同时分拆。同两个销售业务内部他们还按计算密集型/IO密集型的服务项目分拆、C端/B端服务项目分拆、核心/非核心服务项目分拆、高频服务项目单独部署等原则做分拆。
5.触发器化
触发器化能利用线程池、消息队列等形式实现。
使用线程池的时候一定要注意核心参数的设置,能透过监控工具去观测实际创建、活跃、空闲的线程数,结合CPU、内存的使用率情况来做线程池Listary。
另一种是透过NIO实现触发器化,一切网络IO皆可触发器:RPC框架、Servlet 3.0提供的触发器技术、Apache HttpAsyncClient、内存触发器接口等等。
6.搜检索擎
复杂查阅以及一些聚合计算不适合在统计资料库中做,能利用搜检索擎来实现,另外搜检索擎还能帮他们很好的解决跨库、跨统计数据源检索的情景。
http://youzhixueyuan.com/six-ways-to-optimize-rear-end-performance.html
