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

浙公网安备 33010602011771号