`
woodding2008
  • 浏览: 285250 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
         为了清楚的掌握连接建立,连接终止以及数据传送时发生的所有不同事件,下图以有限状态机的形式来定义。    TCP各种状态 状态                               说明 CLOSED                      没有连接 LISTEN                         收到了被动打开;等待SYN SYN-SENT                   已发送SYN;等待ACK SYN-RCVD                   已发送SYN+ACK;等待ACK ESTABLISHED          ...
  源端口(source port) 16位的字段,定义了发送这个报文段的主机中的应用程序的端口号。   目的端口(destination port) 16位的字段,定义了接收这个报文段的主机中的应用程序的端口号。   序列号(sequence number) 32位的字段,定义了指派给本报文段第一个数据字节的编号。为了保证连接性,要发送的每一个字节都要编上号。序号可以告诉终点,报文段中的第一个字节是这个序列中的哪一个字节。在建立连接是,双方使用各自的随机数生成器生产一个初始序号(inital squence number,ISN),通常两个方向上的ISN是不同的。   ...
  IP头部结构          RFC 751定义了因特网协议,IP是一个无连接的协议,这意味着它将每个IP分组都看成是与其他IP分组无关的独立数据单元。IP不具备通常为了确保数据的认证机制,如果再分组转发过程中发生错误,IP不 ...
       前段时间 一台服务器重启过,查看系统日志发现一堆可疑信息,根据这些信息追查到是内核bug。 尝试升级内核版本解决。同一批机器机器中有全部有这个问题。   操作系统 uname -a Linux a08.hbase.javagc.com 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux cat /etc/redhat-release CentOS release 5.8 (Final)      message信息 Nov 16 16:24 ...

IP分片

  最大传输单元MTU【Maximum Transmission Unit】 以太网和IEEE 802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节,链路层的这个特性称作MTU,最大传输单元,不同类型的网络大多数都有一个上限。   如果IP层有一个 ...
  TCP/IP的分层        TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络协议。虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。   封装        当应用程序应用TCP传输数据时,数据被送入协议栈中,然后逐个通过每一层都被当做一串比特流送入网络。其中每一层对收到的数据都要加一些首部信息(有时还需要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame)。       以太网数 ...
  在线人数需求 当天总在线人数 同时在线人数 同时在线人数统计周期1分钟   用户心跳数据采集 登陆后前30秒每10秒汇报一次心跳 登陆超过30秒每30秒汇报一次心跳 Max心跳QPS=500W/30s=170W+   Strom任务设计 使用Hyperloglog结构代替HashMap做过滤 spout发送bolt使用localOrShuffleGrouping减少网络传输 spout与bolt数量是worker数量N倍,让worker处理量保持均衡 Kafka partition与worker数量相等消除热点 countbolt使用ticktu ...
    Tuple接口有很多方法可以读取从上游组件发送过来的数据,这些方法可以分为2类。 根据下标获取数据 根据字段名获取数据 读取数据方法 public class TupleImpl extends IndifferentAccessMap implements Seqable, Indexed, IMeta, Tuple { private List<Object> values; private int taskId; private String streamId; private GeneralTopologyC ...
  场景回放 A机器的服务请求B机器的服务 短连接请求,动态创建连接端口 A机器服务会主动关闭连接 短时间内高并发请求 A机器的tcpssports被耗尽了 大部分网络连接处time_wait状态   内核配置 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.ip_local_reserved_ports = 5710-5739,15710-15739       端口耗尽 主动调用close()/shutdown()断开连接,收到对方确认后状态变为TIME_WAIT。 TCP协议TIM ...

Storm 反压机制

反压机制        Storm的反压机制不成熟直接带来的后果是洪峰流量或者流量预估不准确导致任务的worker OOM,频繁漂移。Storm1.0版本已经使用新的反压机制,社区解决方案:https://issues.apache.org/jira/browse/STORM-886 https://github.com/apache/storm/pull/700          反压过程 worker executor的接收队列大于高水位,通知反压线程  worker反压线程通知zookeeper,executor繁忙事件  所有worker监听zookeeper ...
        Storm从0.8.1之后,在Spout调用nextTuple方法时,如果没有emit tuple,那么默认需要休眠1ms,这个具体的策略是可配置的,因此可以根据自己的具体场景,进行设置,以达到合理利用cpu资源。               ISpoutWaitStrategy是Spout没有emit时等待策略的接口,目的是合理利用Cpu,默认提供了2个实现,一个什么也没做,一个是sleep 1毫秒,我们可以自己来实现这个接口。   storm策略配置 topology.spout.wait.strategy "backtype.storm.spout ...
        在使用kafka high-level的consumer,使用多线程消费数据时报错,简单分析一下原因,ConsumerIterator取不到消息时会阻塞,并且将内部状态置为FAILED,当其他线程访问时就会抛出异常。     def hasNext(): Boolean = { if(state == FAILED) //处于FAILED状态时,另外线程访问会直接异常 throw new IllegalStateException("Iterator is in failed state") sta ...
 spout一直报错导致worker重启 2016-10-25 14:00:12 STDIO [ERROR] at com.mysql.jdbc.Util.getInstance(Util.java:386) 2016-10-25 14:00:12 STDIO [ERROR] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) 2016-10-25 14:00:12 STDIO [ERROR] at com.mysql.jdbc.SQLError.createSQLException(SQLError.ja ...

HyperLogLog介绍

 
  Redis HyperLogLog       Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。     ...
         随着redis集群规模的增大,集群目前的运行状况如何,是否需要扩容,以及集群有任何的风吹草动需要追溯历史,小米同学开源的redismon完全满足这方面的需要,支持几十个监控维度。   常用的指标 cpu使用情况 内存使用情况 客户端连接情况 key的相关数据   RedisMon安装 RedisMon默认支持Openfalcon,如果需要志气其他监控系统需要做一些修改,安装比较简单,请直接参考官网。     监控效果            
Global site tag (gtag.js) - Google Analytics