G1 GC日志分析

使用UseG1GC这个选项显示地要求JDK7或者JDK8对应的JVM采用G1 GC,据说JDK9开始默认GC会变更为G1 GC(现在是ParallelGC),但一切皆有可能。我们使用VM参数-XX:+PrintGCDetails-verbose:gc -Xloggc:gc.log -XX:+UseG1GC,日志输出如清单3-12所示。代码清单3-12 -XX:+UseG1GC运行输出Java Ho...
阅读(35) 评论(0)

性格分析工具

DISC个性特征理论1928年,威廉.马其顿博士出版了《正常人的情绪》一书,书中提出DISC个性特性理论。他认为人类行为是个体自身的反应(主动或被动)以及其对环境的认知(友好与敌对)相互作用的结果,以这两方面的基本轴,可以区分个体与环境互动的四种典型模式,每一个个体或多或少会呈现4种不同的模式:l 支配型(Dominance):在敌对的环境中保持主动的态度和反应;l 影响力(Influence):...
阅读(54) 评论(0)

G1的垃圾回收概念

通过市场的力量,不断淘汰旧的行业,把有限的资源让给那些竞争力更强、利润率更高的企业。类似地,硅谷也在不断淘汰过时的人员,从全世界吸收新鲜血液。经过半个多世纪的发展,在硅谷地区便形成只有卓越才能生存的文化。本着这样的理念,GC承担了淘汰垃圾、保存优良资产的任务。G1 GC在回收暂停阶段会回收最大量的堆内区间(Region),这是它的设计目标,通过回收区间达到回收垃圾的目的。这里只有一个例外情况,这个...
阅读(35) 评论(0)

HDFS中NameNode 单点失败的改进案例介绍

在Hadoop的使用中,NameNode的单点失败问题一直困扰着框架的使用者。这一节我们提出了一种利用ZooKeeper对NameNode进行冗余备份协同工作方案,避免了NameNode单点失败造成的服务不可用与文件丢失问题。NameNode是整个HDFS的核心,HDFS所有的操作均需由NameNode参与,并且NameNode负责维护整个分布式文件系统中所有文件的元信息以及目录信息。如果Name...
阅读(53) 评论(0)

如何启动ZooKeeper(下)

(3). Module3 分布式模式由于ZooKeeper单机模式不支持单点失败保护,所以不推荐在生产环境下使用。ZooKeeper有另外一种支持多台机器的模式,即真正的分布式模式,这多台包含在一个应用体内的集群机器被称为quorum,这些机器最小配置为3台,最佳配置为5台,其中包含1台Leader(领导者)机器,由5台机器内部选举产生,另外4台机器就立即成为Follower(跟随者)机器,一旦L...
阅读(72) 评论(0)

如何启动ZooKeeper(中)

(2). Module2 伪分布式模式上面演示了如何启动单机模式,现在我们来演示设置伪分布式模式。我们可以在一台机器上创建模拟的ZooKeeper集群服务,假如我们需要3个节点,需要创建3个cfg文件,分别命名为zoo1.cfg,zoo2.cfg,zoo3.cfg,此外我们还需要创建3个不同的数据文件夹,分别是zoo1,zoo2和zoo3,目录位于/var/lib/zookeeper,如1-16、...
阅读(60) 评论(0)

如何启动ZooKeeper(上)

启动ZooKeeperZooKeeper服务的启动方式分为三种,即单机模式、伪分布式模式、分布式模式,这里针对三种模式均做逐一讲解。 Tips 调试过程建议尽量使用分布式模式,单机模式不推荐在生产环境下使用,伪分布式模式实质上是在一个进程内派生多个线程模拟分布式形态,由于操作系统的内部结构设计,容易造成一些问题,建议与其解决问题不如切换到分布式模式。生产环境下建议一定采用分布式模式,如果机器...
阅读(91) 评论(0)

不懂技术的研究团队领导

不懂技术的人如果做了研发团队的领导,很容易出现严重的问题。例如,技术会议他到底需不需要参加,如果是一位技术专家出生的人,毫无疑问他需要参加,但是如果情况不是,这时候就会出现麻烦。他参加或者不参加,都会引起麻烦,所以尽量避免这样的人出任研发团队领导。另外,对于整个研发过程的管理,不懂技术的人很容易完全从产品角度考虑,忽略研发团队面临的困难和风险,忽略技术人员对于技术的憧憬,造成团队超负荷工作的情况、...
阅读(140) 评论(0)

并行程序设计模式

并行程序设计模式一般有Future模式、Master-Slave模式、保护暂停模式、不变模式、生产者/消费者模式等。1. Future模式Future模式有点类似商品订单。比如在进行网上购物时,当看中某一件商品时,就可以提交订单。当订单处理完毕后,便可在家里等待商品送货上门。卖家根据订单从仓库里取货,并配送到客户手上。在大部分情况下,商家对订单的处理并不那么快,有时甚至需要几天时间。而在这段时间内...
阅读(75) 评论(0)

不懂技术的研发团队领导

不懂技术的人如果做了研发团队的领导,很容易出现严重的问题。例如,技术会议他到底需不需要参加,如果是一位技术专家出生的人,毫无疑问他需要参加,但是如果情况不是,这时候就会出现麻烦。他参加或者不参加,都会引起麻烦,所以尽量避免这样的人出任研发团队领导。另外,对于整个研发过程的管理,不懂技术的人很容易完全从产品角度考虑,忽略研发团队面临的困难和风险,忽略技术人员对于技术的憧憬,造成团队超负荷工作的情况、...
阅读(133) 评论(0)

HashMap使用经验(下)

对于任意给定的对象,只要它的hashCode()返回值相同,那么程序调用hash(int h)方法所计算得到的Hash码值总是相同的。接下来程序会调用indexFor(int h, int length)方法来计算该对象应该保存在table数组的哪个索引处。indexFor(inth, int length)方法的代码如清单3-48所示。代码清单3-48 HashMap的indexFor方法源代码...
阅读(144) 评论(0)

HashMap使用经验(上)

小时候妈妈都教过我们,不同的东西要放在不同的位置,需要时才能快速找到它。当然这个规则你必须记住,不然怎么都找不到了。HashMap之所以能够做到快速存、取,与我们下面要介绍的内容密切相关。HashMap和HashSet是JavaCollection Framework的两个重要成员,其中HashMap是Map接口的常用实现类,HashSet是Set接口的常用实现类。虽然HashMap和HashSe...
阅读(104) 评论(0)

JVM 垃圾回收器工作原理及使用实例介绍

垃圾收集基础Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但是也增加了软件系统的负担。拥有垃圾收集器可以说是 Java 语言与 C++语言的一项显著区别。在 C++语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全时,即存在分配但...
阅读(144) 评论(0)

Java永久代去哪儿了

在JDK8之前的HotSpot虚拟机中,类的这些“永久的”数据存放在一个叫做永久代的区域。永久代一段连续的内存空间,我们在JVM启动之前可以通过设置-XX:MaxPermSize的值来控制永久代的大小,32位机器默认的永久代的大小为64M,64位的机器则为85M。永久代的垃圾回收和老年代的垃圾回收是绑定的,一旦其中一个区域被占满,这两个区都要进行垃圾回收。但是有一个明显的问题,由于我们可以通过‑XX:MaxPermSize 设置永久代的大小,一旦类的元数据超过了设定的大小,程序就会耗尽内存,并出现内存溢出错...
阅读(917) 评论(0)

Apache kafka 工作原理介绍

本文首先介绍了 Apache Kafka 的基本原理及专业术语,然后通过一个在线网络游戏的例子进一步解释 Kafka 的功能,最后通过具体案例介绍 Kafka 与 Flume 的差异。...
阅读(259) 评论(0)
424条 共29页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:560750次
    • 积分:9771
    • 等级:
    • 排名:第1869名
    • 原创:413篇
    • 转载:11篇
    • 译文:0篇
    • 评论:80条
    最新评论