`
iwinit
  • 浏览: 452252 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
之前一直对jdbc的query timeout有疑惑,看了下mysql的实现,大概了解了。 关于jdbc的各种超时时间关系见这个文章http://www.importnew.com/2466.html,这里简单来看一下mysql的query timeout实现,也是比较简单。query timeout就是在发起请求前,启 ...
从连接的视角来看类图 1.WrappedConnection直接实现了Connection接口,对外的包装类 2.BaseWrapperManagedConnection,包装了底层的物理连接,实现了连接获取,销毁等方法,psCache也是这里实现 3.BaseConnectionEventListener,和BaseWrapperManagedConnection互相引用,数据源内部实现并发控制的实体单元 4.InternalManagedConnectionPool,获取连接的并发控制地方,维护着connectionListener的列表和一个Semaphore信号量以实现最 ...
先来看看jboss数据源的整体类图。   1.入口类LocalTxDataSource,负责对外参数设置和初始化框架 2.获取数据库连接的入口类WrapperDataSource,其实现了DataSource接口 3.ManagedConnectionFactory接口用来获取真实连接和创建WrapperDataSource 4.LocalManagedConnectionFactory负责从driver获取连接,driver层面的参数都在这里维护 5.JBossManagedConnectionPool维护着连接池必须的参数,管理着连接池的状态 6.ManagedConnec ...
之前在做一个天气数据相关的东东,统计了一些天气的数据源 一.中央气象局 api http://m.weather.com.cn/data/101010100.html 城市code http://gxz1989611.iteye.com/blog/1622625 2586个 二.yahoo api http://developer.yahoo.com/weather/  翻译的数据 风速和等级转换 http://baike.baidu.com/view/465076.htm 天气翻译 http://geovindu.blog.163.com/blo ...
前一篇文章分析了server端主动超时session的情况,接下来看一下client和server网络暂时中断的情况。 1.和server主动关闭连接一样,client抛出EndOfStreamException异常,此时客户端状态还是CONNECTED 2.SendThread处理异常,清理连接,将当前所有请求置为失败,错误码是CONNECTIONLOSS 3.发送Disconnected状态通知 4.选下一个server重连 5.连上之后发送ConnectRequest,sessionid和password是当前session的数据 6.server端处理,分leader和fo ...
前面一篇文章提到zookeeper server端主动发现session超时并清理session信息,关闭连接,接下来看看client端如何试图恢复session的。关于client端代码分析见前文http://iwinit.iteye.com/blog/1754611 。由于session被清理,此时server端已经没有session信息了。而由于连接被关闭,client会抛出异常 if (sockKey.isReadable()) { //返回-1 int rc = sock.read(incomingBuffer); if ( ...
前面分析知道session超时由leader负责,假设某个session长时间没心跳超时,SessionTrackImpl入口 if (set != null) { for (SessionImpl s : set.sessions) { setSessionClosing(s.sessionId); expirer.expire(s); } }  session失效是一个 ...
前面几篇zookeeper的文章简单分析了执行流程,接下来打算从横向来分析一下zk的一些特性,先从session开始。这一篇http://iwinit.iteye.com/blog/1754611分析了单机情况下session建立,在集群环境下建立session不太一样,是一个proposal的过程,先假设集群由leader,followerA,followerB组成,我们的client去连followerA。follower和leader初始化之后,初始化的sessionTracker不一样,leader中是SessionTrackerImpl,follower中是LearnerSessi ...
Broker是metaq的核心组件,负责消息的物理存储,分区指定等。例子配置文件 [system] #broker编号,集群唯一 brokerId=0 #这个broker指定的分区数 numPartitions=2 #nio port serverPort=8123 #异步刷盘策略,为0表示同步刷盘 unflushThreshold=0 #同上,刷盘间隔 unflushInterval=10000 #单个消息文件的最大size maxSegmentSize=1073741824 #单个请求最大传输size maxTransferSize=1048576 #数据清 ...
今天在HBase群里碰到一个客户端死锁问题,堆栈如下 Java stack information for the threads listed above: =================================================== "KVQueueService-Handler-2-EventThread": at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.stop(ZooKeeperNodeTracker.java:98) - wa ...
https://github.com/nathanmarz/storm/wiki/Guaranteeing-message-processing这篇文章介绍了storm如何处理消息事务,提到了用一个ack value代表一个tuple的生命周期。 其算法是“It is simply the xor of all tuple ids that have been created and/or acked in the tree.” 如果topology是 Spout->A->B  ,那么计算过程应该是 (0^U(s))^(U(s)^U(A))^(U(A)^0)=0 U ...
Procuder相对consumer来说比较简单,根据topic从zk拿broker列表,注意这里只拿master类型的broker,slave型的broker和master拥有同样的broker id,主要为了HA用。roubd-robin取一个partition,发送消息。   1.MetaMessageSessionFactory初始化zookeeper连接,创建MessageProducer,默认SimpleMessageProducer   2.订阅topic,是一个异步操作 public void publishTopic(final String topic, fina ...
集群安装参考 https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster example工程 https://github.com/nathanmarz/storm-starter 问题: 1.python2.5找不到,默认安装了2.7,源代码安装2.5解决 2.storm-starter工程编译找不到jar,twitter4j被墙,http://hi.baidu.com/88908775/item/e5d1f61cad8aaf443b176e28 解决 3.storm-starter编码报错,代码有问题,e ...
Metaq是一个类是kafka的消息系统,开源地址https://github.com/killme2008/Metamorphosis。 基于Pull的消息系统,consumer端保持了很多逻辑,比如当前拉取消息的offset,loadbalance等,使用zookeeper作为coordination。 简单类图 核心类ZKLoadRebalanceListener,负责集群感知,当有broker退出或consumer退出时,重新balance。 FetchManager是具体的worker线程,负责从处理FetchRequest,从某一个partition拉去数据,并回掉业务 ...
Get主要流程: 1.拼装Scanner 2.调用scanner的next方法取记录 3.返回result   scanner入口是RegionScanner,代表扫描一个region,其实现RegionScannerImpl有一个属性KeyValueHeap,这个KeyValueHeap又包装了多个StoreScanner。每个StoreScanner对应一个column family,而每个StoreScanner又对应一个MemStoreScanner和多个StoreFileScanner。MemStoreScanner代表对memstore进行scan,StoreFileS ...
Global site tag (gtag.js) - Google Analytics