-
kafka源码分析3 : Producer
原文出处:刘正阳ProducerProducer是生产者的接口定义常用的方法有publicFuture<RecordMetadata>send(ProducerRecord<K,V>record);publicFuture<RecordMetadata>send(ProducerRecord<K,V>record,Callbackcallback);......847 0 2018-06-04 15:43
-
记一次内存溢出的分析经历 — thrift带给我的痛
原文出处:Janti说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?我知道,你有过!但是我还是要来说说我的故事………………背景:有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),服务端用Java写......999 0 2018-06-04 15:32
-
kafka 源码分析4: broker 处理生产请求
原文出处:刘正阳Kafkabroker上对于produce生产者生产消息的处理KafkaServer处理生成者请求入口在KafkaApis.scala,通过request.header.apikey判断消息类型defhandle(request:RequestChannel.Request){try{trace("Handlingrequest:%sfromconnection%s;securit......1,092 0 2018-06-04 15:31
-
使用logsave将命令输出保存起来
原文出处:暗无天日如果想要把命令的输出保存到文件中,你会怎么做?一个常用的方法就是使用IO重定向吧ls>/tmp/ls.txt2>&1如果需要在将命令输出保存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以使用 tee 命令ls|tee/tmp/ls.txt不过,我今天发现还有一个 logsave 的命令,也可以做到将命令输出保存到文件的同时将内容页输出到屏幕中。lo......17,153 0 2018-06-04 15:31
-
MySQL的变量分类总结
原文出处:潇湘隐者在MySQL中,my.cnf是参数文件(OptionFiles),类似于ORACLE数据库中的spfile、pfile参数文件,照理说,参数文件my.cnf中的都是系统参数(这种称呼比较符合思维习惯),但是官方又称呼其为系统变量(systemvariables),那么到底这个叫系统参数或系统变量(systemvariables)呢?这个曾经是一个让我很纠结的问题,因为MySQL中......1,423 0 2018-06-04 15:31
-
Kafka 源码分析 5 :KafkaConsumer 消费处理
原文出处:刘正阳Kafka消费者客户端从Kafkacluster中读取消息并处理。Kafka消费者可以手动绑定自己到某个topic的某些partition上或者通过subscribe方法监听某个topic自动绑定。Kafka消费者绑定到某个parition后就和这个partition的leader连接,然后发出fetchrequest,获取消息后进行处理。offset管理kafka的消费模型是一个......976 0 2018-06-04 15:31
-
通过 jstack 与 jmap 分析一次线上故障
原文出处:kingszelda一、发现问题下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。二、排查思路简单分析下可能出问题的地方,分为5个方向:系统本身代码问题内部下游系统的问题导致的雪崩效应上游系统调用量突增http请求第三方的问题机器本身的问题三、开始排查查看日志,没有发现集中的错误日志,初步......1,043 0 2018-06-04 15:29
-
RocketMQ 源码学习 1 : 整体结构
原文出处:谢晞鸣1.为什么是RocketMQ为什么是RocketMQ,而不是ActiveMQ/RabbitMQ/Kafka呢?这不是技术选型,我只是想找一个业界比较好的、开源的MQ系统,学习一下MQ的工作原理。所以首选Java的(虽然语言对我来说不是问题,然还是有点学习成本的),这就只剩下RocketMQ和ActiveMQ了,这两个那就肯定选RocketMQ了,毕竟人家是这么吹牛逼的:“万亿级数据......1,343 0 2018-06-04 15:29
-
JVM堆内存使用率持续上升的一种排查思路
原文出处:木杉的博客最近新版本发布后,在运行一段时间后程序突然无响应了,观察监控,发现JVM堆内存占用在某个时间点突然飙升,最终导致应用无响应:重启Tomcat后,应用恢复正常,并且后续时间没有发生内存上涨问题。分析这个JVM内存曲线,他是直线上升的,以前遇到过类似的场景,会导致这种直线(匀速)上升的,一般是一个死循环导致的,如果是普通请求资源泄露的话,上升曲线不会这么平稳,会和请求量有一定的关系......916 0 2018-06-04 14:38
-
RocketMQ 源码学习 2 : Namesrv
原文出处:谢晞鸣1.Namesrv简介Namesrv可以理解为一个注册中心,整个Namesrv的代码非常简单,主要包含两块功能:管理一些KV的配置管理一些Topic、Broker的注册信息2.Namesrv启动过程启动过程主要涉及NamesrvStartup/NamesrvController两个类,NamesrvStartup负责解析命令行的一些参数到各种Config对象中(NamesrvCon......1,051 0 2018-06-04 14:38
-
RocketMQ 源码学习 3 :Remoting 模块
原文出处:谢晞鸣rocketmq-remoting模块是RocketMQ中负责网络通信的模块,被其他所有需要网络通信的模块依赖。它是基于Netty实现的,避免了网络编程很多tricky的问题。首先来看下RocketMQNettyServer的Reactor线程模型,一个Reactor主线程负责监听TCP连接请求,建立好连接后丢给Reactor线程池,它负责将建立好连接的socket注册到selec......1,161 0 2018-06-04 14:38
-
使用logsave将命令输出保存起来
原文出处:暗无天日如果想要把命令的输出保存到文件中,你会怎么做?一个常用的方法就是使用IO重定向吧ls>/tmp/ls.txt2>&1如果需要在将命令输出保存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以使用 tee 命令ls|tee/tmp/ls.txt不过,我今天发现还有一个 logsave 的命令,也可以做到将命令输出保存到文件......7,602 0 2018-05-31 11:26
-
MySQL的变量分类总结
原文出处:潇湘隐者在MySQL中,my.cnf是参数文件(OptionFiles),类似于ORACLE数据库中的spfile、pfile参数文件,照理说,参数文件my.cnf中的都是系统参数(这种称呼比较符合思维习惯),但是官方又称呼其为系统变量(systemvariables),那么到底这个叫系统参数或系统变量(systemvariables)呢?这个曾经是一个让我很纠结的问题,因为MySQL中......1,522 0 2018-05-31 11:23
-
numfmt : 让数字变得更容易理解
原文出处:暗无天日像 ls, df, du 这类命令都带有一个选项可以将数字直接转换成人类容易阅读的形式来展现。比如,直接执行 df 时,容量显示的是多少个块,而当用 df-h 时,容量会根据块的数量转换成G/M/K的形式[lujun9972@T520~]$df文件系统1K-块已用可用已用%挂载点dev19002800......1,483 0 2018-05-21 17:19
-
记一次内存溢出的分析经历 — thrift带给我的痛
原文出处:Janti说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?我知道,你有过!但是我还是要来说说我的故事………………背景:有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),服务端用Java写......1,137 0 2018-05-21 17:10