JAVA性能分析之使用火焰图

随着业务的发展,使用接口提供的服务的业务越来越多,不同的业务对调用耗时的要求不同,当然,耗时越少越好。而近来已经有三四个调用方反映接口调用耗时太不稳定,代码上的优化已经做了很多,有效果,但还不够。同时,压力测试显示,复杂业务在调用量单机3000次/分时CPU就已经100%了,与预期差距太远。为了改...

2017-02-15 22:29:37

阅读数 6663

评论数 0

Kafka源码阅读 —— KafkaController(5)

重新分配 replica当新增机器到集群中时,可能需要调整topic下partition的replica分配。kafka不会根据负载自动调整replica assignment,这时候就需要集群管理员手动调整。 下面的例子是将foo1和foo2两个topic的所有replica重新分配到brok...

2016-11-14 22:20:52

阅读数 387

评论数 0

Kafka源码阅读 —— KafkaController(4)

在kafka 0.8以后开始提供High Availability机制,即一个broker宕机后可以不影响服务。在集群规模越来越大的今天,HA对于消息中间件至关重要。broker startup“Kafka源码阅读 —— KafkaController(1)”中提到,在broker启动时会调用Ka...

2016-11-14 22:19:21

阅读数 255

评论数 0

Kafka源码阅读 —— KafkaController(3)

执行 kafka-topics.sh –createKafka官网给出的创建Topic的命令如下: bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --to...

2016-11-14 22:18:33

阅读数 434

评论数 0

KAFKA源码阅读——ReplicaFetcherManager,同步log

在ReplicaManager.makeFollowers函数中,对于成为Follower的broker,需要执行这么一段代码:val partitionsToMakeFollowerWithLeaderAndOffset = partitionsToMakeFollower.map(partit...

2016-11-14 20:37:06

阅读数 754

评论数 0

KAFKA源码阅读———处理ProduceRequest,FetchRequest

KafkaApis类中有个handle函数,这里是消息分发中心,根据request中的requestId采用不同的处理方式。当requestId == RequestKeys.produceKey时,通过函数handleProducerOrOffsetCommitRequest处理request。...

2016-11-14 20:36:10

阅读数 1169

评论数 0

KAFKA源码阅读——FetchRequestPurgatory, ProducerRequestPurgatory

RequestPurgatorypurgatory,炼狱的意思。第一次看RequestPurgatory类的代码时,一头雾水,不明白是干什么的。要理解这个,需要先理解kafka处理FetchRequest和ProduceRequest的思路: 1. 请求到达,先判断该请求执行完成的条件是否满足...

2016-11-14 20:32:55

阅读数 513

评论数 0

Kafka源码阅读 —— KafkaController(2)

Controller与broker之间的消息通道当Controller做出动作时,需要向集群中的broker发送控制消息。发送的消息三种:LeaderAndIsrRequest、UpdateMetadataRequest和StopReplicaRequest, broker收到消息后,通过Kafk...

2016-09-25 23:40:41

阅读数 466

评论数 0

Kafka源码阅读 —— KafkaController(1)

KafkaController 启动在KafkaServer.startup()中,KafkaController对象被构建,在启动KafkaApis、replicaManager后,KafkaController.startup()被调用。Kafka集群中每个Broker都会调用startup(...

2016-09-25 23:19:36

阅读数 396

评论数 0

数据从kafka到hive(1)

数据从kafka到hive(1)背景公司的系统是一个对外提供服务的接口,每一次调用日志都需要保存到hive中,以便后期做数据分析。每天的调用量在亿级,日志数据量100G以上,在量级还没有这么大的时候,采取的办法比较原始:直接通过log4j打印到日志文件,然后通过抽数工具同步到hive中,每天凌晨同...

2016-09-07 12:33:56

阅读数 10822

评论数 2

数据从kafka到hive(2)

数据从kafka到hive(2)标签(空格分隔): kafka hive ETL 源码前面一篇讲到了将数据从kafka读到hdfs使用了开源工具camus,既然用到了开源的代码,免不了研究一下实现过程。所以这里分享一下阅读camus代码了解到的一些细节。前置知识在讲camus之前,需要提一下had...

2016-09-07 12:33:01

阅读数 3752

评论数 0

zookeeper学习

zookeeper学习在去年准备面试的时候,有一个问题被问到过两次:如何实现一个跨进程、跨主机的分布式锁。这个问题我当时有查过,一种是通过Redis,另一种是通过zookeeper,因为当时还没有学习java,所以没有研究过zookeeper。但是上周因为项目需要,开始学习kafka——一种消息中...

2015-09-06 00:02:42

阅读数 322

评论数 0

MQ消息处理感悟

MQ消息处理感悟项目需要获取MQ消息,之后用xml工具进行解析,再把解析后的数据插入数据库。本来几天做完的项目,期间遇到了各种坑,拖了一个多星期才预发布。 遇到的第一个坑就是收不到MQ消息,后来又只能能收到队列中积压的消息,之后的消息都收不到,这两个都是MQ配置的原因,这里不再详解。 收到消息后需...

2015-08-02 10:40:58

阅读数 397

评论数 0

关于jdbc事务自动提交

实现jdbc事务流程: 建立数据库连接; 将autoCommit设置为false; 执行sql语句; 提交; 处理异常,如果sql语句执行失败则执行rollBack; 其中,如果执行sql语句过程中抛出异常,rollBack自动进行,或者不调用commit,提交也不会发生。 典型示例如下: i...

2015-07-10 22:39:36

阅读数 430

评论数 0

java读取文件的几种方式

java读取文件的几种方式直接上代码public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String...

2015-04-22 11:19:18

阅读数 250

评论数 0

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