LinkNemo

  • 关于这个博客
    关于这个博客
  • 博客系统升级修改LOG
    博客系统升级修改LOG

30天热门博客

  • 随遇而安

    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发表 63赏阅 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发表 56赏阅 0点评
  • Nemo

    python 面向对象(进阶篇)

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

    Python 面向对象(初级篇)

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

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

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

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

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

    深入探索并发编程系列1 : 锁不慢;锁竞争慢

    原文出处:Yebangyu译者按Preshing 的博客是学习并发编程的不可多得的资料,讲解比较详细。身边的很多朋友从中受益良多。我们在和作者沟通后,获得了授权,着手翻译了他的博客,刊登在这里,以飨朋友诸君。和一般的翻译不同,我们加上了独家的注释。注释要么是纠正错误,要么是辅助理解,要么是补充扩展;相信对大家会大有裨益。正文翻译:@Diting0x审校&&注释:@睡眼惺忪的小叶先森原文地址: Preshing原文锁(也叫互斥量)在很长一段时间都被误解了。1986年,在Usenet的有关于多线程的讨论会中,MatthewDillon说过:大多数人都对锁有个误解,认为锁是慢的。25......
    2018/06/04 15:43:49发表 37赏阅 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发表 36赏阅 0点评
  • 随遇而安

    kafka源码分析3 : Producer

    原文出处:刘正阳ProducerProducer是生产者的接口定义常用的方法有publicFuture<RecordMetadata>send(ProducerRecord<K,V>record);publicFuture<RecordMetadata>send(ProducerRecord<K,V>record,Callbackcallback);publicvoidflush();publicvoidclose();KafkaProducer是异步的,调用send方法后,kafka并没有立即发送给broker,而是先放在buffer缓冲池中就......
    2018/06/04 15:43:48发表 35赏阅 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发表 35赏阅 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发表 21赏阅 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发表 20赏阅 0点评

最新博客

最新资讯

热门人物

热门标签

回到顶部