05 2018 档案

摘要:JDK NIO的bug,例如epoll bug,它会导致Selector空轮询,最终导致CPU 100%。 Selector BUG出现的原因 若Selector的轮询结果为空,也没有wakeup或新消息处理,则发生空轮询,CPU使用率100% 这个bug的描述内容为,在NIO的selector中, 阅读全文
posted @ 2018-05-16 10:49 提拉没有米苏 阅读(1040) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2018-05-16 10:19 提拉没有米苏
摘要:建立socket连接的过程 1:client发syn请求给server 2:server收到后把请求放在syn queue中,这个半连接队列的最大值是系统参数tcp_max_syn_backlog定义的 3:存放在半连接队列后发送syn+ack给client 4:client收到后再发送syn+ac 阅读全文
posted @ 2018-05-15 19:16 提拉没有米苏 阅读(1011) 评论(0) 推荐(0)
摘要:Tcp是一个流的协议,一个完整的包可能会被Tcp拆成多个包进行发送,也可能把一个小的包封装成一个大的数据包发送,这就是所谓的粘包和拆包问题 粘包、拆包出现的原因: 在流传输中出现,UDP不会出现粘包,因为它有消息边界 1、要发送的数据大于TCP发送缓冲区剩余空间,需要被拆包 2、待发送的数据大于MS 阅读全文
posted @ 2018-05-15 19:13 提拉没有米苏 阅读(641) 评论(0) 推荐(0)
摘要:一、 对ThreadLocal的理解 ThreadLocal,很多叫做线程本地变量,也有叫线程本地存储,可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。 这样一个数据库连接管理类,多线程会存在线程安全问题:第一,这里面的2个方法没有进行 阅读全文
posted @ 2018-05-14 16:19 提拉没有米苏 阅读(217) 评论(0) 推荐(0)
摘要:一、为何需要replication kafka0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的partition数据都不可被消费,这与kafka数据持久性及Delivery担保设计目标相悖,同时producer都不能再将数据保存于这些partition中。 阅读全文
posted @ 2018-05-10 15:16 提拉没有米苏 阅读(214) 评论(0) 推荐(0)
摘要:1、写入方式 producer采用push模式将消息发布到broker,每条消息都被append到patition中,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障kafka吞吐率) 2、消息路由 producer发送消息到broker时,会根据分区算法选择将其存储到哪一个Partition, 阅读全文
posted @ 2018-05-09 16:29 提拉没有米苏 阅读(236) 评论(0) 推荐(0)
摘要:一、kafka的架构 1、Broker kafka集群包含一个或者多个服务器,这种服务器就叫做Broker 2、Topic 每条发布到kafka集群的消息都有一个类别,这个类别就叫做Topic(逻辑上的概念,物理上不同的Topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或者多个bro 阅读全文
posted @ 2018-05-09 11:55 提拉没有米苏 阅读(430) 评论(0) 推荐(0)
摘要:情况一:java.lang.OutOfMemoryError: Java heap space 原因:java堆内存不足,可能是真的不足,也可能是程序中有死循环 方案:1、调整JVM参数-Xms2048m -Xmx2048m 2、定位死循环代码 情况二:java.lang.OutOfMemoryEr 阅读全文
posted @ 2018-05-02 18:18 提拉没有米苏 阅读(896) 评论(0) 推荐(0)