JAVA并行编程之Fork/Join--开篇

JAVA fork/join...
阅读(926) 评论(0)

java垃圾回收算法之-CMS(并发标记清除)

CMS垃圾回收器...
阅读(3080) 评论(0)

大型系统重构的步骤简单梳理

目前正在参与公司一个核心大系统的重构工作。本文梳理一下大型系统重构的一些步骤和心得。...
阅读(3538) 评论(1)

应用多机房部署

通常一个产品,内部是需要很多子系统一起协助的,像有些电商系统,可能需要几百个系统一起协助。假设下面这样一种场景,假设应用a部署在机房room1,在room1的其他应用可以调用应用a的接口,然后还有很多的子系统是部署在room2这个机房的,room2中的应用也需要调用到应用a,那么这样room2中的应用调用room1中的a应用时,就有因为跨机房导致的时延问题。如果系统的qps要求很高,那么应用a最好...
阅读(1172) 评论(0)

中央缓存结合本地缓存-本地缓存数据刷新方案

互联网应用通常都需要应付大并发量,为了提高QPS,通常会使用中央缓存(例如memcache)和本地缓存的方式。请求先经过本地缓存,如果不命中,则请求穿透到中央缓存,如果还是不命中,则会直接查询数据库,并把查询到的数据刷新到中央缓存中。如果采用这种方式的话,必须要解决一个问题,如何刷新本地缓存的数据。下面列举一些解决方案。 根据服务器ip地址列表 假设我们的应用部署在10台机器上,可以在...
阅读(3435) 评论(1)

编写业务逻辑代码-清晰可维护是很重要的

最近经常做业务逻辑代码review的工作,发现各种风格的代码,其中有一种是封装和抽象做的非常的多,代码层次非常的深入,表面给人感觉是:牛逼的代码。但是从清晰度和可维护性来说,还是不推荐这么做。 这种代码出现问题后,很难定位哪里出现问题 后续别人维护起来也相当困难 每看一个简单的case,都要跟踪很久 写ut也相当麻烦 我个人认为编写业务逻辑代码还是要从可读性入手,轻松的...
阅读(3246) 评论(2)

缓存外部系统接口返回信息的方案

概述在一个大的系统当中,通常会切分成多个子系统,子系统与子系统之间可以通过微服务、http接口或者mq等来相互通讯。假设有这样一种场景,A系统需要调用B系统的f1 接口,获取数据后再向前端系统输出。 前端系统通常所承受的并发量是非常大的,也就是说A系统的接口需要有很高的qps。这个时候我们需要缓存B系统接口的输出,以便提高A系统接口的响应速度。方案一 让缓存保持新鲜我们可以把B系统接口返回的数据存...
阅读(438) 评论(0)

java垃圾回收算法之-分代收集

概述这种算法,根据对象的存活周期的不同将内存划分成几块,新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。可以用抓重点的思路来理解这个算法。 新生代对象朝生夕死,对象数量多,只要重点扫描这个区域,那么就可以大大提高垃圾收集的效率。另外老年代对象存储久,无需经常扫描老年代,避免扫描导致的开销。新生代在新生代,每次垃圾收集器都发现有大批对象死去,只有少量存活,采用复制算法,只需要付出...
阅读(643) 评论(2)

java垃圾回收算法之-coping复制

之前的java垃圾回收算法之-标记清除 会导致内存碎片。下文的介绍的coping算法可以解决内存碎片问题。概述如果jvm使用了coping算法,一开始就会将可用内存分为两块,from域和to域, 每次只是使用from域,to域则空闲着。当from域内存不够了,开始执行GC操作,这个时候,会把from域存活的对象拷贝到to域,然后直接把from域进行内存清理。 应用场景coping算法一般是使用在新...
阅读(1394) 评论(0)

java垃圾回收算法之-标记__清除_压缩

之前写过的一篇java垃圾回收算法之-标记清除 ,这个算法有个缺点就是造成内存碎片,存在不连续的空间,这样会导致申请较大空间的时候,又需要进行垃圾回收。下面介绍一下标记-清除-压缩算法,可以避免内存碎片。空白部分是不连续的。概述这个算法的标记清除阶段,跟java垃圾回收算法之-标记清除 中介绍的是一样的,而对于压缩阶段,它的工作就是移动所有的可达对象到堆内存的同一个区域中,使他们紧凑的排列在一起,从...
阅读(620) 评论(0)

给Java说句公道话

王垠还是蛮有料的,部分文章值得深入看,本人博客也会引入一些牛人的好文章。给java说句公道话...
阅读(374) 评论(0)

center os 安装mysql5.6

软件 MySQL-server-5.6.13-1.el6.x86_64.rpm MySQL-client-5.6.13-1.el6.x86_64.rpm 安装命令 rpm -ivh MySQL-server-5.6.13-1.el6.x86_64.rpm rpm -ivh MySQL-client-5.6.13-1.el6.x86_64.rpm 启动mysql/etc/rc.d/init.d/mys...
阅读(999) 评论(0)

java垃圾回收算法之-标记清除

java垃圾回收算法之-引用计数器,这个算法其中一个优点便是,实时性,只要对象的引用计数器的值为0,则立刻回收。接下来介绍的标记清除算法,当对象的引用计数器的值为0时,不会立刻被回收的。概念介绍root对象在标记清除算法中,会把如下对象称之为root对象 被栈中的变量(栈中存的是对象的引用)所引用的对象 被static变量引用的对象 可访问的对象如果栈中有一个变量a引用了一个对象,那么该对象是可访问...
阅读(2154) 评论(0)

ThreadPoolExecutor简单介绍

在项目中如果使用发短信这个功能,一般会把发短信这个动作变成异步的,因为大部分情况下,短信到底是发送成功或者失败,都不能影响主流程。当然像发送MQ消息等操作也是可以封装成异步操作的。使用基本的New Thread如果想一个操作变成异步的,可以直接new thread,然后在run方法中实现业务操作即可。例如: new Thread(new Runnable() { public voi...
阅读(497) 评论(0)

java垃圾回收算法之-引用计数器

引用计数器算法算是一种古老的java垃圾回收算法,目前很多版本的java已经废弃掉这种算法了。不过多了解历史解决方案也是很有好处的,通过总结它的优缺点,再与新算法比较,可以帮助更好的理解新算法。 引用计数器算法描述 定义:给每个对象分配一个计算器,当有引用指向这个对象时,计数器加1,当指向该对象的引用失效时,计数器减一。最后如果该对象的计算器为0时,java垃圾回收器会认为该对象是可回收的...
阅读(1877) 评论(0)
124条 共9页首页 上一页 ... 6 7 8 9 下一页 尾页
    个人资料
    • 访问:381290次
    • 积分:3959
    • 等级:
    • 排名:第8806名
    • 原创:119篇
    • 转载:5篇
    • 译文:0篇
    • 评论:183条
    博客专栏