
技术
zdx_csdn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
技术-技术方案优化策略--代码层面
这一点很容易被忽视,比如for循环次数过多很多无谓的条件判断相同逻辑重复多次注:性能优化第一步应该是分析相关的代码,找出相应的瓶颈,再来考虑优化的策略;原创 2017-03-08 10:55:29 · 295 阅读 · 0 评论 -
技术-技术方案优化策略--数据库层面
分三个方面:SQL架构层面连接池1、SQLSQL调优手段包括:方法,工具,辅助系统等;常见方式是:慢查询日志或者辅助系统,定位有问题的SQL,然后使用explain、profile等工具来逐步调优,最后经过测试达到效果后上线。可以参考MySQL索引原理及慢查询优化。2、架构层面架构层面包括读写分离、多从库负载均衡、水平和垂直分库分表等方面改动较大,但是频率没有S原创 2017-03-08 11:04:16 · 322 阅读 · 0 评论 -
技术-技术方案优化策略--缓存层面
两种缓存:本地缓存(HashMap/ConcurrentHashMap、Ehcache、Guava Cache等)缓存服务(Redis/Memcache等)什么情况适合用缓存?短时间内相同数据重复查询多次且数据更新不频繁,可以选择先从缓存查询,查询不到再从数据库加载并回设到缓存的方式,此种场景较适合用单机缓存;高并发查询热点数据,后端数据库不堪重负,可以用缓存来扛;缓存选型原创 2017-03-08 11:26:57 · 342 阅读 · 0 评论 -
技术-技术方案优化策略--异步
使用场景:针对某些客户端的请求,在服务端可能需要做一些附属的事情,这些事情其实用户并不关心或者用户不需要立即拿到这些事情的处理结果,这种情况就比较适合用异步的方式处理.优点:缩短接口响应时间,使用户的请求快速返回,用户体验更好;避免线程长时间处于运行状态,这样会引起服务线程池的可用线程长时间不够用,进而引起线程池任务队列长度增大,从而阻塞更多请求任务,使得更多请求得不到技术处理;线原创 2017-03-08 11:29:14 · 450 阅读 · 0 评论 -
技术-技术方案优化策略--NoSQL
和缓存不一样,NoSQL是作为DB来用,需要有效保证数据存储方案的可用性、可靠性。使用场景:考虑因素有:是否适合用NoSQL来存储,对数据的操作方式是否适合用NoSQL的方式来操作,或者是否需要用到NoSQL的一些额外特性(比如原子加减等)。业务数据不需要和其他数据作关联,不需要事务或者外键之类的支持,而且有可能写入会异常频繁,这个时候就比较适合用NoSQL(比如HBase);例如原创 2017-03-08 11:40:28 · 361 阅读 · 0 评论 -
技术-技术方案优化策略--JVM调优
什么时候调?通过监控系统(如没有现成的系统,做一个简单的上报监控系统)上对一些机器关键指标(gc time、gc count、各个分代的内存大小变化、机器的Load值与CPU使用率、JVM的线程数等)的监控报警,也可以看gc log和jstat等命令的输出,再结合线上JVM进程服务的一些关键接口的性能数据和请求体验,基本上就能定位出当前的JVM是否有问题,以及是否需要调优。怎么调?原创 2017-03-08 11:41:57 · 362 阅读 · 0 评论 -
技术-技术方案优化策略--多线程与分布式
使用场景:离线任务、异步任务、大数据任务、耗时较长任务的运行**,适当地利用,可达到加速的效果。注意:线上对响应时间要求较高的场合,尽量少用多线程,尤其是服务线程需要等待任务线程的场合(很多重大事故就是和这个息息相关),如果一定要用,可以对服务线程设置一个最大等待时间。常用方案:1)单机多线程,可以引入线程池的机制,目标:提高性能,节省线程创建和销毁的开销;限流。给线程池一原创 2017-03-08 11:54:05 · 308 阅读 · 0 评论 -
技术-技术方案优化策略--监控
设计流程:确定指标采集数据计算数据,存储结果展现和分析监控什么?接口性能相关,包括单个接口和全部的QPS、响应时间、调用量(统计时间维度越细越好;最好是,既能以节点为维度,也可以以服务集群为维度,来查看相关数据)。其中还涉及到服务依赖关系的管理,这个时候需要用到服务依赖管理系统;单个机器节点相关,包括CPU使用率、Load值、内存占用率、网卡流量等。如果节点是一些特殊类型的服务原创 2017-03-08 12:03:34 · 402 阅读 · 0 评论 -
AJAX-跨域访问
1.什么是AJA跨域访问用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面2.解决跨域访问策略//设置允许跨域 response.setHeader(CookieDefine.ACCESS_CONTROL_ALLOW_ORIGIN, request.getScheme() + ":" + domain); response.setHeader(Cooki原创 2017-03-04 19:33:09 · 219 阅读 · 0 评论