自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zdx_csdn的博客

留下点点滴滴

  • 博客(19)
  • 收藏
  • 关注

转载 Java线上应用故障排查之二:高内存占用

搞Java开发的,经常会碰到下面两种异常:1、java.lang.OutOfMemoryError: PermGen space2、java.lang.OutOfMemoryError: Java heap space要详细解释这两种异常,需要简单重提下Java内存模型。(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blog

2017-08-09 14:43:02 244

转载 Java线上应用故障排查之一:高CPU占用

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。通过

2017-08-09 14:42:12 267

原创 gradle

使用windows系统的软件管理工具 Chocolatey:https://chocolatey.org/install   安装Graldechoco install gradle

2017-07-31 17:56:45 224

原创 运维-JVM监控之线程问题

jstack主要用来查看某个Java进程内的线程堆栈信息1、ps -ef |grep 应用名称 --获取pid2、top -Hp pid --找出该进程内最耗费CPU的线程例:top -Hp 31385 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND

2017-05-05 17:12:40 708

原创 运维-JVM监控之内存泄漏

1、为什么会发生内存泄漏?如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法从Heap中获取足够的内存分配给对象,这时候就会导致内存溢出。出现内存泄露的地方,一般是不断的往容器中存放对象,而容器没有相应的大小限制或清除机制。2、内存泄漏的现象:程序中抛出OutOfMemoryError错误。3、发现内存泄漏的命令1.jstat -gc pid可以显示gc的

2017-05-05 16:48:40 3321

原创 项目-高并发系统三大利器

保护高并发系统的三大利器:缓存、降级、限流。缓存:提升系统的访问速度,增大系统处理容量;降级:当服务出现问题或影响到核心流程时,需要暂时屏蔽掉,待高峰过后或问题解决后再打开;限流:当不可降级场景出现时,需要采用限流限制该场景的并发请求,有损服务而不是不服务;本文主要针对限流描述如下:限流目的:       通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限

2017-04-27 16:27:02 3417

原创 规范-Redis使用

Redis是公用的分布式内存服务,业务开发时不合理的使用,会导致连带后果;必须规范使用,规范如下:工程名称使用Redis的工程使用场景为何使用redis,解决什么问题key设计key值是否规范value类型使用的数据类型失效策略失效是否合理是否强依赖数据失效或逐出时,是否影响业务流程

2017-04-26 16:26:58 766

原创 规范-dubbo服务设计

1、工程架构    层次设计大致分为:Remote层、Manager层、Service层、Cache层、DAO层、DTO\DO。    各层次功能描述:Remote层:对外暴露dubbo接口;Manager层:多表业务;Service层:单表业务;Cache层:缓存业务;DAO层:数据库访问操作;DTO:暴露服务操作对象;DO:数据库操作对象;2、开发规范Remot

2017-04-26 16:02:44 3179

原创 技术-技术方案优化策略--监控

设计流程:确定指标采集数据计算数据,存储结果展现和分析监控什么?接口性能相关,包括单个接口和全部的QPS、响应时间、调用量(统计时间维度越细越好;最好是,既能以节点为维度,也可以以服务集群为维度,来查看相关数据)。其中还涉及到服务依赖关系的管理,这个时候需要用到服务依赖管理系统;单个机器节点相关,包括CPU使用率、Load值、内存占用率、网卡流量等。如果节点是一些特殊类型的服务

2017-03-08 12:03:34 347

原创 技术-技术方案优化策略--多线程与分布式

使用场景:离线任务、异步任务、大数据任务、耗时较长任务的运行**,适当地利用,可达到加速的效果。注意:线上对响应时间要求较高的场合,尽量少用多线程,尤其是服务线程需要等待任务线程的场合(很多重大事故就是和这个息息相关),如果一定要用,可以对服务线程设置一个最大等待时间。常用方案:1)单机多线程,可以引入线程池的机制,目标:提高性能,节省线程创建和销毁的开销;限流。给线程池一

2017-03-08 11:54:05 257

原创 技术-技术方案优化策略--JVM调优

什么时候调?通过监控系统(如没有现成的系统,做一个简单的上报监控系统)上对一些机器关键指标(gc time、gc count、各个分代的内存大小变化、机器的Load值与CPU使用率、JVM的线程数等)的监控报警,也可以看gc log和jstat等命令的输出,再结合线上JVM进程服务的一些关键接口的性能数据和请求体验,基本上就能定位出当前的JVM是否有问题,以及是否需要调优。怎么调?

2017-03-08 11:41:57 298

原创 技术-技术方案优化策略--NoSQL

和缓存不一样,NoSQL是作为DB来用,需要有效保证数据存储方案的可用性、可靠性。使用场景:考虑因素有:是否适合用NoSQL来存储,对数据的操作方式是否适合用NoSQL的方式来操作,或者是否需要用到NoSQL的一些额外特性(比如原子加减等)。业务数据不需要和其他数据作关联,不需要事务或者外键之类的支持,而且有可能写入会异常频繁,这个时候就比较适合用NoSQL(比如HBase);例如

2017-03-08 11:40:28 294

原创 技术-技术方案优化策略--异步

使用场景:针对某些客户端的请求,在服务端可能需要做一些附属的事情,这些事情其实用户并不关心或者用户不需要立即拿到这些事情的处理结果,这种情况就比较适合用异步的方式处理.优点:缩短接口响应时间,使用户的请求快速返回,用户体验更好;避免线程长时间处于运行状态,这样会引起服务线程池的可用线程长时间不够用,进而引起线程池任务队列长度增大,从而阻塞更多请求任务,使得更多请求得不到技术处理;线

2017-03-08 11:29:14 373

原创 技术-技术方案优化策略--缓存层面

两种缓存:本地缓存(HashMap/ConcurrentHashMap、Ehcache、Guava Cache等)缓存服务(Redis/Memcache等)什么情况适合用缓存?短时间内相同数据重复查询多次且数据更新不频繁,可以选择先从缓存查询,查询不到再从数据库加载并回设到缓存的方式,此种场景较适合用单机缓存;高并发查询热点数据,后端数据库不堪重负,可以用缓存来扛;缓存选型

2017-03-08 11:26:57 275

原创 技术-技术方案优化策略--数据库层面

分三个方面:SQL架构层面连接池1、SQLSQL调优手段包括:方法,工具,辅助系统等;常见方式是:慢查询日志或者辅助系统,定位有问题的SQL,然后使用explain、profile等工具来逐步调优,最后经过测试达到效果后上线。可以参考MySQL索引原理及慢查询优化。2、架构层面架构层面包括读写分离、多从库负载均衡、水平和垂直分库分表等方面改动较大,但是频率没有S

2017-03-08 11:04:16 267

原创 技术-技术方案优化策略--代码层面

这一点很容易被忽视,比如for循环次数过多很多无谓的条件判断相同逻辑重复多次注:性能优化第一步应该是分析相关的代码,找出相应的瓶颈,再来考虑优化的策略;

2017-03-08 10:55:29 249

原创 项目-设计高并发交易系统

1、引述与秒杀活动相似,此外还具备两个自身的特点:1)并发要求更高;2)更严格的安全级别;体现在技术方案上,相比于秒杀商品,共同点是并发请求抢锁,此外还有两个突出特点:1)事务级操作量大--并发高导致;2)事务要求严格--安全级别导致;2、解决高并发常用方案    方案一,使用内存代替实时的DB事务操作,然后异步DB持久化。优点是提高了并发性能,缺点是DB持久化失败或者内存

2017-03-06 22:57:18 1030

原创 项目-设计秒杀系统

1、引述本质是在很短的时间,面对巨大的请求流量,将有限的库存商品分发出去,并完成交易操作;特点是:库存是有限的,瞬时流量大,且都在请求相同的资源,造成数据库的并发读写冲突及资源锁请求冲突严重;思路:设计至简,减少对环境的依赖,数据路径越长出问题的环节越多,保证系统的可靠性,即使有某环节出现问题,依然能够保障核心的用户体验正常;2、系统设计静态资源预部署在第三方的CDN服务上

2017-03-06 00:21:48 340

原创 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 182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除