LinkNemo

  • 随遇而安

    记一次内存溢出的分析经历 — thrift带给我的痛

    原文出处:Janti说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?我知道,你有过!但是我还是要来说说我的故事………………背景:有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),服务端用Java写的(带管理页面),属于RPC模式,中间的通信框架使用的是thrift。thrift很多优点就不多说了,它是facebook的开源的rpc框架,主要是它能够跨语言,序列化速度快,但是他有个不讨喜的地方就......
    2018/06/04 15:32:02发表 170赏阅 0点评
  • 随遇而安

    kafka 源码分析4: broker 处理生产请求

    原文出处:刘正阳Kafkabroker上对于produce生产者生产消息的处理KafkaServer处理生成者请求入口在KafkaApis.scala,通过request.header.apikey判断消息类型defhandle(request:RequestChannel.Request){try{trace("Handlingrequest:%sfromconnection%s;securityProtocol:%s,principal:%s".format(request.requestDesc(true),request.connectionId,request.securityPro......
    2018/06/04 15:31:59发表 37赏阅 0点评
  • 随遇而安

    使用logsave将命令输出保存起来

    原文出处:暗无天日如果想要把命令的输出保存到文件中,你会怎么做?一个常用的方法就是使用IO重定向吧ls>/tmp/ls.txt2>&1如果需要在将命令输出保存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以使用 tee 命令ls|tee/tmp/ls.txt不过,我今天发现还有一个 logsave 的命令,也可以做到将命令输出保存到文件的同时将内容页输出到屏幕中。logsave 的语法非常简单:logsave[-asv]logfilecmd_prog[args...]logsave会执行 cmd_progargs... 并将命令输出的副本保存到 logfile 中......
    2018/06/04 15:31:54发表 79赏阅 0点评
  • 随遇而安

    MySQL的变量分类总结

    原文出处:潇湘隐者在MySQL中,my.cnf是参数文件(OptionFiles),类似于ORACLE数据库中的spfile、pfile参数文件,照理说,参数文件my.cnf中的都是系统参数(这种称呼比较符合思维习惯),但是官方又称呼其为系统变量(systemvariables),那么到底这个叫系统参数或系统变量(systemvariables)呢?这个曾经是一个让我很纠结的问题,因为MySQL中有各种类型的变量,有时候语言就是这么博大精深;相信很多人也对这个问题或多或少有点困惑。其实抛开这些名词,它们就是同一个事情(东西),不管你叫它系统变量(systemvariables)或系统参数都可,......
    2018/06/04 15:31:53发表 76赏阅 0点评
  • 随遇而安

    Kafka 源码分析 5 :KafkaConsumer 消费处理

    原文出处:刘正阳Kafka消费者客户端从Kafkacluster中读取消息并处理。Kafka消费者可以手动绑定自己到某个topic的某些partition上或者通过subscribe方法监听某个topic自动绑定。Kafka消费者绑定到某个parition后就和这个partition的leader连接,然后发出fetchrequest,获取消息后进行处理。offset管理kafka的消费模型是一个partition最多被一个consumer消费,而offset可以有consumer控制,例如通过seek前进或后退到某个offset位置。首次连接时,可以通过KafkaConsumer配置参数里的......
    2018/06/04 15:31:51发表 64赏阅 0点评
  • 随遇而安

    通过 jstack 与 jmap 分析一次线上故障

    原文出处:kingszelda一、发现问题下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。二、排查思路简单分析下可能出问题的地方,分为5个方向:系统本身代码问题内部下游系统的问题导致的雪崩效应上游系统调用量突增http请求第三方的问题机器本身的问题三、开始排查查看日志,没有发现集中的错误日志,初步排除代码逻辑处理错误。首先联系了内部下游系统观察了他们的监控,发现一起正常。可以排除下游系统故障对我们的影响。查看provider接口的调用量,对比7天没有突增,排除业务方调用量的问题。查看tcp监控......
    2018/06/04 15:29:59发表 43赏阅 0点评
  • 随遇而安

    RocketMQ 源码学习 1 : 整体结构

    原文出处:谢晞鸣1.为什么是RocketMQ为什么是RocketMQ,而不是ActiveMQ/RabbitMQ/Kafka呢?这不是技术选型,我只是想找一个业界比较好的、开源的MQ系统,学习一下MQ的工作原理。所以首选Java的(虽然语言对我来说不是问题,然还是有点学习成本的),这就只剩下RocketMQ和ActiveMQ了,这两个那就肯定选RocketMQ了,毕竟人家是这么吹牛逼的:“万亿级数据洪峰下的分布式消息引擎”。2.项目结构benchmark,一些sh脚本,调用example模块中的benchmarkProducer/Consumer来做一些测试broker,消息代理,起到串联Pro......
    2018/06/04 15:29:51发表 72赏阅 0点评
  • 随遇而安

    JVM堆内存使用率持续上升的一种排查思路

    原文出处:木杉的博客最近新版本发布后,在运行一段时间后程序突然无响应了,观察监控,发现JVM堆内存占用在某个时间点突然飙升,最终导致应用无响应:重启Tomcat后,应用恢复正常,并且后续时间没有发生内存上涨问题。分析这个JVM内存曲线,他是直线上升的,以前遇到过类似的场景,会导致这种直线(匀速)上升的,一般是一个死循环导致的,如果是普通请求资源泄露的话,上升曲线不会这么平稳,会和请求量有一定的关系。死循环导致这个线程的资源无法释放,随着循环次数的增多,累积的对象越来越多,最终导致堆内存耗尽。那要如何定位到具体的死循环位置呢?这个是个难题。之前遇到类似的问题是通过dump生产环境的JVM内存来分......
    2018/06/04 14:38:53发表 46赏阅 0点评
  • 随遇而安

    RocketMQ 源码学习 2 : Namesrv

    原文出处:谢晞鸣1.Namesrv简介Namesrv可以理解为一个注册中心,整个Namesrv的代码非常简单,主要包含两块功能:管理一些KV的配置管理一些Topic、Broker的注册信息2.Namesrv启动过程启动过程主要涉及NamesrvStartup/NamesrvController两个类,NamesrvStartup负责解析命令行的一些参数到各种Config对象中(NamesrvConfig/NettyServerConfig等),如果命令行参数中带有配置文件的路径,也会从配置文件中读取配置到各种Config对象中,然后初始化NamesrvController,配置shutdown......
    2018/06/04 14:38:48发表 22赏阅 0点评
  • 随遇而安

    RocketMQ 源码学习 3 :Remoting 模块

    原文出处:谢晞鸣rocketmq-remoting模块是RocketMQ中负责网络通信的模块,被其他所有需要网络通信的模块依赖。它是基于Netty实现的,避免了网络编程很多tricky的问题。首先来看下RocketMQNettyServer的Reactor线程模型,一个Reactor主线程负责监听TCP连接请求,建立好连接后丢给Reactor线程池,它负责将建立好连接的socket注册到selector上去(这里有两种方式,NIO和Epoll,可配置),然后监听真正的网络数据。拿到网络数据后,再丢给Worker线程池。Worker拿到网络数据后,就交给Pipeline,从Head到Tail一个......
    2018/06/04 14:38:39发表 21赏阅 0点评
  • 新闻收藏君

    6月4日微语简报

    6月4日微语简报 星期一 工作愉快生活喜乐!一份微语报,众览天下事!1、中国银联:银联卡免密支付限额由300元上调到1000元;2、雄安中小学生校服向全球征设计方案金奖可获5万;3、内蒙古大兴安岭原始林区雷击火蔓延4000人赴火场Ⅲ级响应启动;4、中央气象台:今年第4号台风即将生成华南将受影响;5、国税总局责成江苏税务机关调查影视从业人员“阴阳合同”涉税问题无锡滨湖区地税局已介入崔永元微博爆料范冰冰涉税事件;6、江苏省兴化市试验田启动无人农机全过程作业将逐步建立无人农场 ;公众号:weiyunews7、中国赴苏丹维和部队打通杜艾因雨季唯一对外通道;8、欧盟向WTO......
    2018/06/04 09:35:32发表 38赏阅 0点评
  • Nemo

    python 面向对象(进阶篇)

    面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中)对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数面向对象三大特性:封装、继承和多态本篇将详细介绍Python类的成员、成员修饰符、类的特殊成员。类的成员类的成员可以分为三大类:字段、方法和属性注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。一、字段字段包括:普......
    2018/06/04 00:50:03发表 57赏阅 0点评
  • Nemo

    Python 面向对象(初级篇)

    概述面向过程:根据业务逻辑从上到下写垒代码函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可面向对象:对函数进行分类和封装,让开发“更快更好更强...”面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。whileTrue:ifcpu利用率>90%:#发送邮件提醒连接邮箱服务器发送邮件关闭连接if硬盘使用空间>90%:#发送邮件提醒连接邮箱服务器发送邮件关闭连接if内存占用>80%:#发送邮件提醒连接邮箱服务器发送邮件 关闭连接随着时间的推移,开始使用了函数式编......
    2018/06/04 00:36:26发表 50赏阅 0点评
  • 随遇而安

    使用logsave将命令输出保存起来

    原文出处:暗无天日如果想要把命令的输出保存到文件中,你会怎么做?一个常用的方法就是使用IO重定向吧ls>/tmp/ls.txt2>&1如果需要在将命令输出保存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以使用 tee 命令ls|tee/tmp/ls.txt不过,我今天发现还有一个 logsave 的命令,也可以做到将命令输出保存到文件的同时将内容页输出到屏幕中。logsave 的语法非常简单:logsave[-asv]logfilecmd_prog[args...]logsave会执行 cmd_progargs......
    2018/05/31 11:26:11发表 216赏阅 0点评
  • 随遇而安

    MySQL的变量分类总结

    原文出处:潇湘隐者在MySQL中,my.cnf是参数文件(OptionFiles),类似于ORACLE数据库中的spfile、pfile参数文件,照理说,参数文件my.cnf中的都是系统参数(这种称呼比较符合思维习惯),但是官方又称呼其为系统变量(systemvariables),那么到底这个叫系统参数或系统变量(systemvariables)呢?这个曾经是一个让我很纠结的问题,因为MySQL中有各种类型的变量,有时候语言就是这么博大精深;相信很多人也对这个问题或多或少有点困惑。其实抛开这些名词,它们就是同一个事情(东西),不管你叫它系统变量(systemvariables)或系统参数都可,......
    2018/05/31 11:23:17发表 214赏阅 0点评
  • 新闻收藏君

    5月31日微语简报

    5月31日微语简报 农历四月十七 星期四 工作愉快 生活喜乐!1、进口汽车迎来降价潮!奔驰、宝马、奥迪最高降价超10万元;2、“限塑令”10年,快递、外卖成塑料垃圾使用“大户”;3、美计划缩短我公民签证有效期 外交部:应采取措施促进人员往来便利;4、恐袭阴云未散 法国禁止公共场合大屏幕转播世界杯;5、本国劳力不足 日本拟至2025年引50万外国体力劳动者;6、古巴着手修宪 首次涉及经济问题以适应模式更新;7、白俄罗斯允许外国球迷在世界杯前后免签入境;8、民进党当局改“华侨”为“侨民” 国台办:改变不了华侨......
    2018/05/31 09:30:06发表 220赏阅 0点评

最新点击

热门人物

热门标签

回到顶部